




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Gis開(kāi)發(fā)ArcGIS的體系結(jié)構(gòu):ArcEngine功能層次由以下5部分組成:基本服務(wù):由GIS核心ArcObjects構(gòu)成。幾乎所有的GIS應(yīng)用程序都需要,如幾何體和顯示。數(shù)據(jù)存取:對(duì)許多柵格和矢量格式的數(shù)據(jù)進(jìn)行存取,包括GeoDatabase。地圖表達(dá):創(chuàng)建和顯示帶有符號(hào)、標(biāo)注的地圖以及專(zhuān)題地圖的ArcObjects對(duì)象。開(kāi)發(fā)組件:快速應(yīng)用開(kāi)發(fā)的高級(jí)用戶接口控件和綜合幫助系統(tǒng)。運(yùn)行時(shí)選項(xiàng):與標(biāo)準(zhǔn)功能或其他高級(jí)功能一起部署的部件。標(biāo)準(zhǔn)Engine功能:地圖瀏覽、地圖制作、數(shù)據(jù)查詢(xún)、數(shù)據(jù)分析所有的開(kāi)發(fā)控件 MapControl, PageLayout, Toolbar, TOC, ArcRea
2、der對(duì)所有矢量和柵格數(shù)據(jù)源的讀權(quán)限、對(duì)Shapefile和pGDB的寫(xiě)權(quán)限讀/寫(xiě) MXD文件ArcGIS Engine類(lèi)庫(kù)System類(lèi)庫(kù)是ArcGIS系統(tǒng)結(jié)構(gòu)中最底層的類(lèi)庫(kù)。System類(lèi)庫(kù)包含了構(gòu)成為ArcGIS的其他類(lèi)庫(kù)提供服務(wù)的組件。System類(lèi)庫(kù)中定義了大量開(kāi)發(fā)者可以實(shí)現(xiàn)的接口,如AoInitializer對(duì)象就是在System類(lèi)庫(kù)中定義的,所有開(kāi)發(fā)者必須使用這個(gè)對(duì)象來(lái)初始化ArcGIS Engine。SystemUI 包含用戶界面組件接口定義。如:Icommand、Itool和IToolControl接口。開(kāi)發(fā)者使用這些接口來(lái)擴(kuò)展UI組件。包含的一些使用工具對(duì)象,通過(guò)使用這些對(duì)
3、象來(lái)簡(jiǎn)化用戶界面的開(kāi)發(fā), 如Icommand和Itool這樣的接口就在這里定義。Geometry處理存儲(chǔ)在要素類(lèi)中的要素形狀。如:Point、MultiPoint、Polyline、Polygon等。存儲(chǔ)構(gòu)成幾何要素的子要素。如:Segement、Path、Ring等。存儲(chǔ)幾何要素的空間參考對(duì)象。包括:投影坐標(biāo)和地理坐標(biāo)系統(tǒng)等。Display用于控制地圖顯示。包含用于顯示GIS數(shù)據(jù)的對(duì)象。包含符號(hào)、顏色等用來(lái)控制顯示的對(duì)象。包含交互操作時(shí)提供給用戶顯示回饋的對(duì)象,如MoveEnvelopeFeedback。Carto包含操作2D地圖的對(duì)象。支持2D地圖的創(chuàng)建和顯示。提供Map和PageLayo
4、ut等基礎(chǔ)對(duì)象。提供MapDocument對(duì)象來(lái)操作地圖文檔。使用ArcGIS Engine可以開(kāi)發(fā)多種應(yīng)用程序。獨(dú)立的非可視化應(yīng)用程序。如控制臺(tái)和實(shí)用工具應(yīng)用程序。獨(dú)立的可視化應(yīng)用程序。如Wiondows和基于控件的應(yīng)用程序。嵌入式應(yīng)用程序。如嵌入到現(xiàn)有的應(yīng)用程序中的組件??缙脚_(tái)的上述應(yīng)用程序。用Java或C+編寫(xiě)。ArcGIS Engine控件概念嵌入式組件 一每個(gè)ArcGIS控件都是嵌入式組件,可以拖放到可視化設(shè)計(jì)環(huán)境提供的容器窗體或?qū)υ捒蛑?。一旦放在了容器?nèi),就可以改變ArcGIS控件的大小和位置,以便與其他嵌入式組件一起為應(yīng)用程序提供用戶界面。屬性頁(yè) 一旦控件被放入了容器中,就可以使
5、用右鍵點(diǎn)擊該控件來(lái)彈出屬性頁(yè)面,可以方便的訪問(wèn)控件的屬性和方法 ,減少代碼的編寫(xiě)工作量伙伴控件一這種類(lèi)型的ArcGIS控件不能單獨(dú)使用,需要和另外一個(gè)控件一起協(xié)同工作。一ToolbarControl和TOCControl是伙伴控件一對(duì)應(yīng)的伙伴控件一般為:MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl控件。一可以通過(guò)屬性頁(yè)面來(lái)設(shè)置伙伴控件的關(guān)聯(lián)屬性??丶钜籄rcGIS Engine提供了一系列的命令、工具和菜單與ArcGIS控件系統(tǒng)工作。如放大、縮小、漫游等等。一開(kāi)發(fā)人員也可以通過(guò)創(chuàng)建自己定義的命令、工
6、具和菜單來(lái)使用ArcGIS Engine提供的命令集。一可以使用HookHelper、GlobeHookHelper和SceneHookHelper等對(duì)象來(lái)簡(jiǎn)化自定義的命令。按照控件的功能,AE控件可以分為3類(lèi):制圖控件:MapControl、PageLayoutControl等MapControl控件MapControl對(duì)應(yīng)于ArcMap Desktop 應(yīng)用中的“數(shù)據(jù)” 。 MapControl控件中封裝了Map對(duì)象,用于管理控件的外觀、顯示屬性和地圖屬性、管理、添加數(shù)據(jù)圖層,裝載地圖文檔,顯示、繪制跟蹤圖層。它實(shí)現(xiàn)的主要接口有IMapControlDefault、IMapControl2
7、、 IMapControl3、 IMapControlEventsPageLayoutControl控件PageLayoutControl控件主要用于頁(yè)面布局與制圖。對(duì)應(yīng)于ArcMap Desktop 應(yīng)用中的“頁(yè)面布局”視圖,該控件封裝了PageLayout類(lèi)。PageLayoutControl控件不能添加地圖圖層或地理數(shù)據(jù),必須通過(guò)MXD文件來(lái)加載需要處理的數(shù)據(jù)。PageLayoutControl控件主要實(shí)現(xiàn) IPageLayoutControlDefault、 IPageLayoutControl、 IPageLayoutControl2、 IPageLayoutControlevent
8、s等接口??蚣芸丶篢OCControl、ToolbarControl等圖層樹(shù)控件(TOCControl)TOCControl用來(lái)管理圖層的可見(jiàn)性和標(biāo)簽的編輯。 TOCControl需要一個(gè)“伙伴控件”一起工作, “伙伴控件”可以是一個(gè)MapControl、 PageLayoutControl、ReaderControl、 SceneControl或者GlobeControl?!盎锇榭丶蹦軌蛟谠O(shè)計(jì)的時(shí)候通過(guò)TOCControl的屬性頁(yè)設(shè)置?;蛘咴诔绦蜻\(yùn)行中通過(guò)SetBuddyControl方法來(lái)設(shè)置?!盎锇榭丶倍紝?shí)現(xiàn)了ITOCBuddy接口。 TOCControl利用“伙伴控件”來(lái)顯示交互
9、性的樹(shù)結(jié)構(gòu)目錄,包括“伙伴控件”的地圖、圖層、符號(hào)等內(nèi)容。工具欄控件(ToolbarControl)ToolbarControl需要與一個(gè)“伙伴控件”一起工作?!盎锇榭丶笨梢允且粋€(gè)MapControl,PageLayoutControl,SceneControl或者是GlobeControl。“伙伴控件”能夠在設(shè)計(jì)的時(shí)候通過(guò)ToolbarControl的屬性頁(yè)設(shè)置。ToolbarControl實(shí)現(xiàn)了ARCGIS中的所有功能,如果想使這些功能進(jìn)一步擴(kuò)展,難度很大。三維控件:GlobeControl、SceneControl等創(chuàng)建菜單控件 & PageLayoutControl 的使用可
10、被各控件加載的文檔類(lèi)型ArcGIS Engine類(lèi)庫(kù):DataSourcesFile包含用于基于文件數(shù)據(jù)源的GeoDatabase API實(shí)現(xiàn)。基于文件的數(shù)據(jù)源包括:shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。開(kāi)發(fā)者不能擴(kuò)展DataSourcesFile。GeoDatabase為ArcGIS支持的所有數(shù)據(jù)源提供了一個(gè)統(tǒng)一編程模型。定義了許多由ArcObjects架構(gòu)中更高級(jí)的數(shù)據(jù)源提供者實(shí)現(xiàn)的接口。開(kāi)發(fā)者可以擴(kuò)展地理數(shù)據(jù)庫(kù),以支持特定類(lèi)型的數(shù)據(jù)對(duì)象。該類(lèi)庫(kù)還支持PlugInDataSource對(duì)象添加的自定義矢量數(shù)據(jù)源。地圖控件與布局控件同步在Ar
11、cMap中,能夠很方便地進(jìn)行MapView和Layout View兩種視圖的切換,而且二者之間的數(shù)據(jù)是同步顯示的。Arcgis Engine中,可以通過(guò)MapControl和PageLayoutControl的關(guān)聯(lián)實(shí)現(xiàn)兩者的同步顯示。實(shí)現(xiàn)這一功能的核心接口是IObjectCopy,該接口提供了Copy方法用于地圖的復(fù)制Overwrite方法用于地圖寫(xiě)入PageLayoutControl控件的視圖中。布局控件中添加圖例和比例尺添加圖例uid類(lèi)別為esriCarto.legend添加比例尺需要將uid的類(lèi)別設(shè)為” esriCarto.ScaleLine“或者esriCarto.ScaleText”
12、TOC控件圖層操作&鷹眼功能設(shè)計(jì)Ilayer是所有圖層類(lèi)都實(shí)現(xiàn)的接口,該接口定義了所有圖層的公共方法和屬性;IBasicMap是IMap接口的一個(gè)子集,可用于管理Map對(duì)象中的Layer對(duì)象等。在ArcMap中,要調(diào)整圖層的現(xiàn)實(shí)順序,只需要簡(jiǎn)單的鼠標(biāo)拖拽就可以完成,既簡(jiǎn)單又直觀。但是TOCControl控件并未實(shí)現(xiàn)此功能。本實(shí)例即實(shí)現(xiàn)此功能。在本實(shí)例中主要利用TOCControl控件的OnMouseDown、OnMouseUp兩個(gè)事件和HitTest()、Update()方法。OnMouseDown事件方法的主要功能是獲取源圖層pMovelayer。OnMouseUp事件方法的主要功能
13、是:1) 獲取目標(biāo)圖層及其索引號(hào);2) 利用IMap提供的Movelayer(pMoveLayer, Toindex)將源圖層pMoveLayer移到目標(biāo)圖層(Toindex)的下方; 3)使用ITOCControl提供的Update()方法更新TOCControl控件中顯示的內(nèi)容。Envelope對(duì)象 Envelope也稱(chēng)包絡(luò)線,是一個(gè)矩形區(qū)域,是每個(gè)幾何形體的最小外接矩形。每個(gè)Geometry都擁有一個(gè)Envelope。 IEnvelope是包絡(luò)線對(duì)象的主要接口。它定義了Xmax、Xmin、Ymax、Ymin、Height和Width等屬性,用于獲取或設(shè)置一個(gè)存在的包絡(luò)線對(duì)象的空間坐標(biāo)。I
14、Envelope接口提供了一些方法,例如:Expand:用于按比例縮放包絡(luò)線的范圍。Offset:是一個(gè)偏移方法,通過(guò)一個(gè)設(shè)定的(X,Y)移動(dòng)包絡(luò)線。CenterAt:通過(guò)改變包絡(luò)線的中心點(diǎn)來(lái)移動(dòng)包絡(luò)線。PutCoords:通過(guò)指定的坐標(biāo)點(diǎn)來(lái)構(gòu)造包絡(luò)線。Map對(duì)象 Map對(duì)象是ArcEngine的主要組成部分。Map對(duì)象既是數(shù)據(jù)的管理容器,同時(shí)也是數(shù)據(jù)顯示的主要載體。 Map對(duì)象的主要接口有IMap、IActiveView、IActiveViewEvents、IMapBookmark、IGraphicsContainer、ITableCollection等。Imap接口主要用于管理Map對(duì)象中
15、的layer對(duì)象。常用的方法或?qū)傩园ǎ篈ctiveGraphicsLayer: 地圖的活動(dòng)圖形圖層,如果沒(méi)有則會(huì)自動(dòng)創(chuàng)建一個(gè)存放圖形的圖層。AddLayer:向地圖中添加單個(gè)圖層;AddMapSurround:向圖層中添加輔助圖形元素(如:比例尺、圖例等)ClearLayer:從地圖中移除所有圖層。ClearSelection:清除地圖選擇集。DeleteLayer:從Map中刪除圖層。DeleteMapSurround:從地圖中刪除輔助圖形元素。DistanceUnits:地圖的距離單位。FeatureSelection:地圖中選擇的要素。LayerCount:地圖中圖層的數(shù)目。Layer
16、s:地圖中的圖層集合。IGraphicsContainer接口主要用于管理圖形元素(包括圖形元素和框架元素)。IGraphicsContainer接口提供了以下主要方法:AddElement: 添加元素、UpdateElement: 更新元素、DeleteElement: 刪除元素IActiveView接口是Map對(duì)象最主要、最常用接口之一,該接口定義了Map對(duì)象的數(shù)據(jù)顯示功能??梢栽贛ap上繪制圖形、改變視圖范圍等。 Arc Engine中PageLayout和Map對(duì)象都實(shí)現(xiàn)這個(gè)接口,分別 代表了布局視圖和數(shù)據(jù)視圖。 IActiveView接口提供的主要屬性和方法有:Extent屬性:用于
17、返回Map對(duì)象當(dāng)前的視圖范圍,是一個(gè)Envelope對(duì)象。FullExtent屬性:用于返回視圖的全圖范圍。ScreenDisplay屬性:用于指向一個(gè)ScreenDisplay對(duì)象PartialRefresh方法:該方法通過(guò)指定esriViewDrawPhase參數(shù),可以實(shí)現(xiàn)不同方式的局部刷新。Layer對(duì)象 Map對(duì)象是用來(lái)裝載地理數(shù)據(jù)的,而這些數(shù)據(jù)又是以圖層的形式放入地圖對(duì)象中,Layer作為地圖圖層的裝載單位。 Layer本身沒(méi)有裝載數(shù)據(jù),其作用是獲得數(shù)據(jù)的引用,用于管理數(shù)據(jù)源的連接。 Ilayer是所有圖層類(lèi)都實(shí)現(xiàn)的接口。Point對(duì)象 Point對(duì)象代表一個(gè)0緯的具有X、Y坐標(biāo)的幾
18、何對(duì)象。 Ipoint接口定義了Point對(duì)象的屬性和方法, Point可以使用PutCoords方法創(chuàng)建,也可以使用IConstructPoint接口來(lái)創(chuàng)建。Element對(duì)象 Element對(duì)象就是地圖上不保存到數(shù)據(jù)庫(kù)中的元素。例如DrawShape和DrawText方法繪制的圖形都是Element對(duì)象。 IElement是所有圖形元素和框架元素類(lèi)都能實(shí)現(xiàn)的接口。 LineElement和MarkElement是最簡(jiǎn)單的圖形元素。ILineElement接口只提供了一個(gè)Symbol屬性,用于設(shè)置線的樣式。IMarkElement接口也只提供一個(gè)Symbol ,用于設(shè)置點(diǎn)的樣式。FillSh
19、apeElement是一個(gè)抽象類(lèi),該類(lèi)泛化出CircleElement、EllipseElement、PolygonElement和RectanguleElement等。 該類(lèi)實(shí)現(xiàn)了IFillShapeElement接口,通過(guò)接口提供的Symbol屬性可以設(shè)置元素的樣式, Symbol必須是Ifillsymbol對(duì)象。MapSurround對(duì)象 MapSurround是一個(gè)修飾地圖的輔助圖形元素對(duì)象,該對(duì)象會(huì)根據(jù)Map對(duì)象的變化而做出反應(yīng)。例如地圖視圖范圍發(fā)生變化后,ScaleBar對(duì)象也會(huì)自動(dòng)調(diào)整。Color對(duì)象 Color對(duì)象是一個(gè)抽象類(lèi),它又泛化為5個(gè)類(lèi):CmykColor、GrayCo
20、lor、HlsColor、HsvColor和RgbColor,它們分別對(duì)應(yīng)的接口為: ICmykColor、IGrayColor、IHlsColor、IHsvColor和IRgbColor。專(zhuān)題地圖制作分層設(shè)色法使用的主要對(duì)象及接口: ColorRamp對(duì)象在專(zhuān)題地圖制作中,我們常常會(huì)用到一個(gè)顏色帶,而不是單一的顏色。 ArcEngine中ColorRamp類(lèi)的對(duì)象就是用于產(chǎn)生顏色帶,它實(shí)現(xiàn)了IColorRamp接口,定義了一系列顏色帶公共方法。 ColorRamp還有4個(gè)子類(lèi),分別是:AlgorithmicColorRamp、RandomColorRamp、MultipartColorRam
21、p和PresetColorRamp。AlgorithmicColorRamp顏色帶是通過(guò)指定起始和終止的顏色,中間的顏色通過(guò)規(guī)則計(jì)算,生成一組有序顏色帶。RandomColorRamp顏色帶是在給定的顏色范圍內(nèi),隨機(jī)生成一組顏色帶,這個(gè)顏色范圍是HSV顏色模型的。MultipartColorRamp顏色帶是用多種疊加方法生成一組顏色帶。PresetColorRamp顏色帶是根據(jù)預(yù)設(shè)顏色進(jìn)行調(diào)整,生成一組顏色帶。Symbol對(duì)象Symbol就是用來(lái)在地圖上修飾要素或者圖形元素的對(duì)象。GIS中的離散實(shí)體分為3種:點(diǎn)、線、面。 ArcEngine中分別用MarkerSymbol、LineSymbol
22、和FillSymbol來(lái)表示,此外還有:TextSymbol用于文字標(biāo)注,3Dchart符號(hào)用于顯示餅圖等3維對(duì)象。MarkerSymbol對(duì)象是用于修飾點(diǎn)對(duì)象的符號(hào)。它擁有12個(gè)子類(lèi):ArrowMarkerSymbol、BarChartSymbol、CharacterMarkerSymbol、PieChartSymbol等等。所有的MarkerSymbol類(lèi)都實(shí)現(xiàn)了IMarkerSymbol接口,定義了Angle、Color、Size、Xoffset、Yoffset等屬性。LineSymbol對(duì)象是用于修飾線型幾何對(duì)象的符號(hào)。ILineSymbol作為其接口,定義了兩個(gè)公共屬性:Color和
23、Width。LineSymbol類(lèi)是抽象類(lèi),該類(lèi)泛化出8個(gè)類(lèi):CartographicLineSymbol、HashLineSymbol、MarkerLineSymbol、MultiLayerLineSymbol、PictureLineSymbol、SimpleLine3DSymbol、SimpleLineSymbol和TextureLineSymbol。GradientFillSymbol使用漸變顏色進(jìn)行填充,該類(lèi)實(shí)現(xiàn)了IGradientFillSymbol接口。 ColorRamp屬性用于設(shè)置這個(gè)漸變填充符號(hào)的顏色帶,在設(shè)置顏色條的時(shí)候,IntervalCount屬性設(shè)置用戶使用的顏色梯度
24、。 Style屬性用于設(shè)置漸變填充的樣式,系統(tǒng)提供了4種樣式:esriGFSLine、esriGFSRectangular、esriGFSCircular和esriGFSBuffered,它們決定了符號(hào)是采用線、矩形、圓形或緩沖的填充方法。專(zhuān)題地圖常用表示方法及設(shè)計(jì)幾種常用表示法使用的主要對(duì)象及接口:FillSymbol對(duì)象DotDensityFillSymbol是一種基于數(shù)據(jù)的點(diǎn)密度填充符號(hào)。 它一般與DotDensityRenderer著色對(duì)象一起使用,由MarkerSymbol組成的隨機(jī)位置點(diǎn)來(lái)顯示數(shù)據(jù)屬性,而面積內(nèi)的點(diǎn)的個(gè)數(shù)則由DotDensityRenderer對(duì)象計(jì)算出來(lái)。 該對(duì)象
25、實(shí)現(xiàn)了IDotDensitySymbol接口,通過(guò)該接口可以設(shè)置填充符號(hào)的屬性,如Marker的數(shù)量、尺寸、顏色等屬性;BackgroundColor用于設(shè)置填充區(qū)域的背景顏色。Color屬性設(shè)置點(diǎn)的顏色,OutLine屬性用于設(shè)置點(diǎn)的外框。3DChartSymbol3DChartSymbol是一個(gè)抽象類(lèi)。它包含3個(gè)子類(lèi):BarChart、PieChart、StackedChart。 3DChartSymbol實(shí)現(xiàn)了多個(gè)接口,如:IChartSymbol、IBarChartSymbol、IPieChartSymbol和IStackedChartSymbol。 IChartSymbol接口主要用
26、于計(jì)算一個(gè)ChartSymbol對(duì)象中的柱狀和餅狀部分的尺寸。 使用3D符號(hào)著色時(shí),符號(hào)可能不止一種,這時(shí)可以使用ISymbolArray接口來(lái)管理一個(gè)著色對(duì)象中的多個(gè)參與著色的符號(hào)對(duì)象。BarChartSymbol對(duì)象實(shí)現(xiàn)了IBarChartSymbol接口,該對(duì)象使用不同類(lèi)型的柱子來(lái)表示一個(gè)要素的不同屬性。柱子的高度代表該屬性值的大小。 VerticalBar屬性用于確定使用水平還是垂直的柱子。Width和Spacing屬性可以設(shè)置柱子間的空隙,Axes屬性設(shè)置每個(gè)柱子的軸線。 PieChartSymbol對(duì)象實(shí)現(xiàn)了IPieChartSymbol接口。該接口定義了餅圖的外觀屬性。例如Clo
27、ckWise屬性確定餅圖中的著色方向,True則對(duì)應(yīng)順時(shí)針?lè)植迹籙seOutline屬性設(shè)置為T(mén)rue時(shí),可設(shè)置餅圖外框輪廓線。AE中提供了多個(gè)著色對(duì)象用于生成專(zhuān)題圖,可以使用標(biāo)準(zhǔn)著色方案,也可以自定義著色方案。標(biāo)準(zhǔn)著色方案都是對(duì)一個(gè)圖層中的所有要素進(jìn)行渲染。如果要對(duì)圖層中的部分要素單獨(dú)著色,則可以通過(guò)對(duì)這些要素繪制圖形元素或?qū)⑿柚膶?duì)象放入選擇集中,為選擇集創(chuàng)建一個(gè)新圖層,然后對(duì)新圖層著色的方法來(lái)實(shí)現(xiàn)。 SimpleRenderer 該方法是使用單一符號(hào)進(jìn)行著色分類(lèi),不涉及對(duì)要素圖層數(shù)據(jù)的分析處理。對(duì)同一圖層中的所有元素使用同一種符號(hào)。ClassBreakRenderer 該方法是也稱(chēng)為分
28、級(jí)著色法,通過(guò)要素圖層中要素的某個(gè)數(shù)值字段的值,根據(jù)用戶設(shè)定將,這些值分為多個(gè)等級(jí),每個(gè)級(jí)別用不同的Symbol顯示。 ClassBreakRenderer對(duì)象實(shí)現(xiàn)了IClassBreakRenderer接口,該接口提供了分級(jí)顯示的屬性和方法,例如:Field屬性設(shè)置分級(jí)著色的字段,BreakCount屬性用于設(shè)置分級(jí)的數(shù)目。ChartRenderer ChartRenderer方法使用餅圖或者柱狀圖來(lái)顯示一個(gè)要素的多個(gè)屬性。 該對(duì)象實(shí)現(xiàn)了IChartRenderer接口,該接口提供了ChartSymbol方法設(shè)置著色對(duì)象的符號(hào),Label屬性用于設(shè)置Legend的標(biāo)簽。 該方法可比較一個(gè)要素
29、的不同屬性,因此需要獲取著色圖層的一個(gè)或多個(gè)字段,可通過(guò)RendererField對(duì)象來(lái)操作,該類(lèi)實(shí)現(xiàn)了IRendererField接口,可通過(guò)AddField方法來(lái)添加字段。地圖要素的選擇 & 空間分析空間查詢(xún)是GIS的基本功能之一,主要分為兩類(lèi):基于屬性查詢(xún)和基于空間位置查詢(xún)(空間關(guān)系查詢(xún))字符型字段查詢(xún)基于字符型字段的語(yǔ)句通常使用“=”和“LIKE”進(jìn)行SQL查詢(xún),若我們確切知道某字段的值,則可用“=”。例如查找美國(guó)佛羅里達(dá)州的表達(dá)式為:“State_name =Florida ” 。但大多數(shù)情況下不能確定某個(gè)要查詢(xún)字段的確切值,那么通過(guò)使用“LIKE”進(jìn)行模糊查詢(xún),例如查找美國(guó)
30、所有開(kāi)頭為A的州,則表達(dá)式為: “State_name” LIKE A% 。數(shù)值型字段查詢(xún)基于數(shù)值型字段的語(yǔ)句通常使用比較操作符和運(yùn)算符來(lái)完成,其中比較操作符包括>,<,>=,<=幾種; 運(yùn)算符包括+,-,*,/。 如查找面積大于1500 km2的林地的表達(dá)式為“Area > 1500 ” 。有時(shí),一些特殊的查找僅僅靠字段值的比較是不能完成的,此時(shí)引入運(yùn)算符來(lái)完成任務(wù)。 如查找人口密度小于或者等于25人/km2的城市的表達(dá)式為“POP2000 / Area<=25 ” 。高級(jí)查詢(xún)應(yīng)用中經(jīng)常采用復(fù)合式多標(biāo)準(zhǔn)查詢(xún),條件之間用“AND”,“OR”和“NOT”來(lái)連接
31、,還有“IN” 操作符。如查找面積大于100 km2的紅樹(shù)林。此查詢(xún)需滿足兩個(gè)條件:面積大于100 km2 ;樹(shù)種是紅樹(shù)林。需要用AND操作符,AND代表所有的條件都為真,表達(dá)式為:“VEGETATION=紅樹(shù)林” AND “AREA>100 ” 。QueryFilter 對(duì)象與SpatialFilter 對(duì)象在關(guān)系型數(shù)據(jù)庫(kù)中,查詢(xún)條件是通過(guò)SQL 語(yǔ)句的Where 子語(yǔ)句來(lái)完成的。在ArcEngine 中不能直接使用SQL 語(yǔ)句,但ArcGIS Engine 提供了QueryFilter和SpatialFilter 兩個(gè)過(guò)濾器對(duì)象來(lái)配合完成查詢(xún)條件的設(shè)置,從而查詢(xún)到想要的數(shù)據(jù)。Quer
32、yFilter 過(guò)濾器主要用于對(duì)屬性數(shù)據(jù)查詢(xún)條件的設(shè)置,它主要實(shí)現(xiàn)IQueryFilter 接口從而實(shí)現(xiàn)屬性查詢(xún)功能。AE中空間查詢(xún)主要用到IspatialFilter接口,屬性查詢(xún)主要用到IqueryFilter接口。QueryFilter組件類(lèi)指定一個(gè)屬性查詢(xún)過(guò)濾器,利用該過(guò)濾器可以從要素集中篩選出滿足條件的對(duì)象。對(duì)應(yīng)的AddField方法用于向輸出字段集中添加一個(gè)字段,WhereClause用于獲取或設(shè)置查詢(xún)過(guò)濾條件??臻g拓?fù)溥\(yùn)算:空間拓?fù)涿枋龅氖堑乩韺?duì)象的空間位置關(guān)系,即相鄰、重合、連通等等。 拓?fù)涫窃谕粋€(gè)要素集(FeatureDataset)下的要素類(lèi)之間的關(guān)系的集合。 在ESRI
33、提供的數(shù)據(jù)存儲(chǔ)方式中,Coverage和GeoDatabase能夠建立拓?fù)?,而Shape格式的數(shù)據(jù)不能建立拓?fù)洹E中提供了ITopplogicalOperator接口用于拓?fù)溥\(yùn)算。該接口通過(guò)對(duì)已存在的幾何對(duì)象做空間拓?fù)溥\(yùn)算,以產(chǎn)生新的結(jié)合對(duì)象。實(shí)現(xiàn)該接口的類(lèi)有:Point、Multipoint、Polyline和Multipatch等等。ITopplogicalOperator接口在GIS開(kāi)發(fā)中應(yīng)用非常廣泛,其主要的方法有:方法名稱(chēng)說(shuō)明Boundary幾何圖形對(duì)象的邊界Buffer對(duì)幾何圖形對(duì)象進(jìn)行緩沖區(qū)空間拓?fù)洳僮鰿lip對(duì)幾何圖形對(duì)象進(jìn)行裁剪空間拓?fù)洳僮鰿onstructUnion高效的
34、合并多個(gè)枚舉幾何對(duì)象與單個(gè)幾何對(duì)象合并為單個(gè)幾何對(duì)象,這對(duì)于大量幾何對(duì)象的合并非常高效ConvexHull構(gòu)建幾何對(duì)象的凸邊形Cut切割幾何對(duì)象Difference一個(gè)幾何圖形減去它與另一個(gè)幾何圖形相交的部分Intersect兩個(gè)同維度幾何對(duì)象的交集部分Simplify使幾何對(duì)象拓?fù)湟恢耂ymmetricDifference對(duì)稱(chēng)差分將兩個(gè)幾何圖形的并集部分減去兩個(gè)幾何圖形交集的部分Union合并兩個(gè)同維度的幾何對(duì)象為單個(gè)幾何對(duì)象Boundary方法用于幾何圖形對(duì)象的邊界操作。要注意的是多邊形的邊界是組成它的Polyline對(duì)象,Polyline對(duì)象的邊界是組成它的頂點(diǎn)Point對(duì)象,Point
35、對(duì)象的邊界則為空。Buffer方法用于幾何圖形緩沖區(qū)拓?fù)洳僮?,Buffer方法用于給一個(gè)高級(jí)幾何對(duì)象生成一個(gè)緩沖區(qū)。無(wú)論P(yáng)olygon、Polyline還是Point,它們的緩沖區(qū)都是具有面積的幾何對(duì)象。Clip方法用于對(duì)幾何圖形對(duì)象進(jìn)行裁剪空間拓?fù)洳僮?。它是用一個(gè)Envelope對(duì)象對(duì)一個(gè)幾何對(duì)象進(jìn)行裁剪,操作結(jié)果是幾何對(duì)象被Envelope對(duì)象所包圍的部分。Difference方法用于從一個(gè)幾何圖形中減去其與另一個(gè)幾何圖形相交的部分,生成兩個(gè)幾何對(duì)象的差集。ConstructUion方法用于將多個(gè)枚舉對(duì)象與單個(gè)幾何對(duì)象合并成為單個(gè)幾何對(duì)象。Union方法用于將兩個(gè)同維度的幾何對(duì)象合并為單個(gè)
36、幾何對(duì)象,Union方法和ConstructUion都用于合并幾何對(duì)象,所不同的是Union合并兩個(gè)同維度的幾何對(duì)象,后者是將多個(gè)幾何對(duì)象與單個(gè)幾何對(duì)象合并為單個(gè)幾何對(duì)象。Intersection方法用于獲取兩個(gè)同維度的幾何對(duì)象的交集部分。SymmetricDifference(對(duì)稱(chēng)差分)方法可將兩個(gè)幾何圖形的并集部分減去兩個(gè)幾何圖形的交集的部分。什么是空間關(guān)系?空間關(guān)系是GIS的重要理論問(wèn)題之一,在GIS數(shù)據(jù)建模、空間查詢(xún)、空間分析、空間推理、制圖綜合、地圖理解等過(guò)程中起著重要作用。目前國(guó)際上對(duì)空間關(guān)系的研究主要集中在空間關(guān)系的語(yǔ)義問(wèn)題、空間關(guān)系描述、空間關(guān)系表達(dá)、基于空間關(guān)系的查詢(xún)分析等方
37、面??臻g關(guān)系主要包括距離關(guān)系、方向關(guān)系、拓?fù)潢P(guān)系及空間關(guān)系相似性等。 地理要素之間的空間區(qū)位關(guān)系可抽象為點(diǎn)、線(或?。?、多邊形(區(qū)域)之間的空間幾何關(guān)系 ??臻g關(guān)系運(yùn)算主要用到Irelationaloperator和IProximityOperator 接口,通過(guò)該接口的方法獲取兩個(gè)幾何對(duì)象之間的關(guān)系是否存在。IRelationalOperator幾何對(duì)象之間都存在空間上的某種關(guān)聯(lián)關(guān)系,例如:包含、相交、相等、相接等。 AE中這些關(guān)聯(lián)關(guān)系都可以通過(guò)IRelationalOperator接口來(lái)獲得。 關(guān)系運(yùn)算是在兩個(gè)幾何對(duì)象之間進(jìn)行,通過(guò)IRelationalOperator 的某個(gè)方法返回一個(gè)布爾值來(lái)說(shuō)明這兩個(gè)幾何對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025駕駛員勞務(wù)用工合同范文
- 衡陽(yáng)師范學(xué)院南岳學(xué)院《中國(guó)茶文化與茶藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 滄州交通學(xué)院《中醫(yī)學(xué)(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東商業(yè)職業(yè)技術(shù)學(xué)院《第二外國(guó)語(yǔ)三》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北旅游職業(yè)學(xué)院《GNSS測(cè)量原理及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年山西省平遙縣和誠(chéng)高三仿真模擬聯(lián)考語(yǔ)文試題試卷含解析
- 山東科技大學(xué)《歷史教材分析與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東省深圳市高峰校2025年初三第三學(xué)期半期聯(lián)考化學(xué)試題含解析
- 浙江中醫(yī)藥大學(xué)濱江學(xué)院《國(guó)土空間整治》2023-2024學(xué)年第二學(xué)期期末試卷
- 清遠(yuǎn)職業(yè)技術(shù)學(xué)院《民用航空醫(yī)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 年標(biāo)準(zhǔn)二手房買(mǎi)賣(mài)合同6篇
- 反恐職責(zé)和制度
- 2025年消防應(yīng)急救援指揮考試題庫(kù):消防應(yīng)急救援指揮員現(xiàn)場(chǎng)救援與指揮試題
- 專(zhuān)題11 浮力 課件中考物理復(fù)習(xí)
- 2025年春季學(xué)期形勢(shì)與政策第二講-中國(guó)經(jīng)濟(jì)行穩(wěn)致遠(yuǎn)講稿
- 《橋梁工程中的預(yù)應(yīng)力混凝土技術(shù)》課件
- 人教部編古詩(shī)三首涼州詞完美課件
- 外研版(2025版)七年級(jí)下冊(cè)英語(yǔ)Unit 1~3+期中共4套測(cè)試卷(含答案)
- 大班小小圖書(shū)管理員
- 門(mén)窗、欄桿工程施工組織設(shè)計(jì)方案
- AI應(yīng)用端行業(yè)研究報(bào)告:AI工業(yè)信息化
評(píng)論
0/150
提交評(píng)論