版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、牟乃夏牟乃夏 ArcGIS Engine ArcGIS Engine 地理信地理信息系統(tǒng)開發(fā)教程息系統(tǒng)開發(fā)教程配套配套PPT-PPT-第7章 矢量數(shù)據(jù)空間分析目錄 1. 空間拓?fù)浞治?2. 空間關(guān)系運算 3. 疊加分析 4. 數(shù)據(jù)格式轉(zhuǎn)換 5. 添加X Y數(shù)據(jù) 6. 使用GP工具進(jìn)行空間分析1. 空間拓?fù)浞治?通過一系列的基于一個或者多個幾何圖形間的邏輯比較,然后返回另外一些幾何圖形的過程就是空間幾何圖形的拓?fù)溥\算。它是空間分析的基礎(chǔ),各種空間分析的結(jié)果都可以通過幾何圖形之間的拓?fù)溥\算實現(xiàn)。 相關(guān)類與接口(ITopologicalOperator接口) ITopologicalOperator
2、接口的方法僅僅使用在高級別幾何對象上,即Point、MultiPoint、Polyline和Polygon,如果要使用在低等級的幾何對象中,如Segment(Line,Circular,Arc,Elliptic Arc,Bezier Curve)、Path或Ring上,需要先將他們組合成高級別幾何對象才行。1. 空間拓?fù)浞治?ITopologicalOperator接口的主要方法及屬性有: 1)Boundary屬性 2)Buffer方法 3)Clip方法 4)Union與ConstructUnion方法 5)ConvexHull方法 6)Cut方法 7)Difference方法與Symmetr
3、icDifference方法 8)Intersection方法 9)Simplify方法BoundaryBuffer方法Clip方法Union方法ConvexHull方法Cut方法Difference方法SymmetricDifference方法Intersection方法Simplify方法1. 空間拓?fù)浞治?實例詳解-緩沖區(qū)分析 本例的目的是實現(xiàn)在地圖上點擊選擇任意一個多邊形要素,程序自動生成該多邊形一定范圍內(nèi)的緩沖區(qū)并渲染到地圖上。 實現(xiàn)的基本思路為: 添加緩沖區(qū)分析操作工具; 在其OnMouseDown方法中執(zhí)行點擊查詢要素操作; 將查詢結(jié)果要素通過ITopologicalOperat
4、or. Buffer方法進(jìn)行緩沖區(qū)生成操作; 將緩沖區(qū)生成結(jié)果利用空間要素渲染方式展示到地圖上。1. 空間拓?fù)浞治?其程序設(shè)計具體步驟為: 向工程項目中添加繼承自BaseTool類的文件,該類實現(xiàn)了BaseCommand基礎(chǔ)類和ITool接口的所有方法; 添加ToolBufferAnalysis 類中的OnClick方法的實現(xiàn)代碼,用以判定是否符合緩沖區(qū)操作的前提條件(地圖中是否加載圖層),并修改鼠標(biāo)樣式; 添加ToolBufferAnalysis 類的OnMouseDown方法的實現(xiàn),生成緩沖區(qū)并將生成的緩沖區(qū)要素添加到地圖中;1. 空間拓?fù)浞治?在主程序窗體的按鈕事件中,利用IComman
5、d接口調(diào)用ToolBufferAnalysis工具類,實現(xiàn)點擊選擇地理要素并生成緩沖區(qū)的操作;點擊選擇后的多邊形生成緩沖區(qū)效果展示1. 空間拓?fù)浞治?實例詳解-獲取多邊形要素邊界 本例旨在實現(xiàn)通過在地圖上點擊選擇任意一個多邊形圖形要素,系統(tǒng)自動獲得該多邊形的邊界并渲染展示到地圖上。核心代碼2. 空間關(guān)系運算 相關(guān)類與接口(IRelationalOperator 接口) 幾何對象之間空間關(guān)系主要有:包含、相等、在內(nèi)部、相交等。矢量數(shù)據(jù)的空間關(guān)系運算需要用到IRelationalOperator接口,通過該接口的不同方法判定兩個幾何對象之間的關(guān)系是否存在。關(guān)系運算符用以比較兩個幾何體,并返回一個b
6、oolean型值來說明某種空間關(guān)系是否存在。 空間包含關(guān)系(Contains、Within) 交叉(Crosses) 相離(Disjoint) 重疊(Overlaps) 相等(Equals) 相接(Touches)2. 空間關(guān)系運算 實例詳解-查找一多邊形要素的所有鄰接要素 本例通過在地圖上點擊選擇任意一個多邊形,系統(tǒng)自動獲取與該多邊形要素相鄰接的其它多邊形并顯示到地圖上。核心代碼3. 疊加分析 疊加分析(也稱疊置分析)是將同一區(qū)域,相同參考系統(tǒng)、相同比例尺的兩個或多個數(shù)據(jù)進(jìn)行疊加產(chǎn)生一個新數(shù)據(jù)層的操作,其結(jié)果綜合了原來兩層或多層要素所具有的屬性信息,并且還能從已有的數(shù)據(jù)中提取空間隱含的信息。
7、 相關(guān)類與接口(IBasicGeoprocessor接口) 疊加分析所用到的主要接口是IBasicGeoprocessor接口,它提供了基本的矢量數(shù)據(jù)處理的方法和屬性,概括為疊置求交與疊置求和。該接口包括5個方法(Intersect、Union、Clip、Dissolve、Merge)和2個屬性(SpatialReference和CancelTracker)。3. 疊加分析Clip方法原理圖Dissolve方法原理圖Intersect方法原理圖Merge方法原理圖Union方法原理圖3. 疊加分析 實例詳解:兩相交面圖層的裁剪(Clip)分析 本例利用IBasicGeoprocessor接口的
8、Clip方法實現(xiàn)兩個相交面圖層的裁剪分析操作,通過輸入被裁剪要素圖層和裁剪要素圖層,獲得目標(biāo)要素圖層,該圖層的數(shù)據(jù)結(jié)構(gòu)同被裁剪要素的數(shù)據(jù)結(jié)構(gòu)保持一致。 實現(xiàn)步驟如下: 主窗體中添加觸發(fā)裁剪操作按鈕事件的代碼,通過獲取裁剪圖層和被裁剪圖層,調(diào)用Clip公共方法,返回結(jié)果FeatureClass數(shù)據(jù)集,并加載到地圖中; 添加通過圖層名稱從地圖mapControl空間中獲取對應(yīng)圖層公共方法函數(shù)GetLayerByName(string layerName); 添加Clip裁剪公共方法,利用IBasicGeoprocessor接口中的Clip方法實現(xiàn)裁剪操作,生成ShapeFile數(shù)據(jù)作為保存在磁盤中
9、,并輸出結(jié)果FeatureClass作為返回結(jié)果數(shù)據(jù);關(guān)于裁剪操作,在 7.1講解ITopologicalOperator接口時介紹了Clip方法,在IBasicGeoprocessor接口中也有Clip方法。這兩個方法的區(qū)別是:ITopologicalOperator是針對兩矢量空間要素進(jìn)行圖形信息的裁剪;IBasicGeoprocesso主要針對矢量要素集(圖層),其結(jié)果綜合了原來兩層或多層要素所具有的屬性信息。4. 數(shù)據(jù)格式轉(zhuǎn)換 矢量數(shù)據(jù)的格式轉(zhuǎn)換是GIS軟件常用的功能之一,在自己編寫的應(yīng)用軟件中,也經(jīng)常用到該功能。常用的數(shù)據(jù)格式轉(zhuǎn)換方法主要有ShapeFile文件和CAD文件、Cove
10、rage文件等的轉(zhuǎn)換。 相關(guān)類與接口(IFeatureDataConverter接口) 數(shù)據(jù)格式轉(zhuǎn)換操作主要用到IFeatureDataConverter接口,它包含三個方法:ConvertFeatureClass、ConvertFeatureDataset和ConvertTable,分別可以將要素類、要素集或表轉(zhuǎn)換成其它數(shù)據(jù)集,它不僅可以轉(zhuǎn)換單個的要素類或表,也可以轉(zhuǎn)換整個數(shù)據(jù)集(如ArcInfo Coverage)。 同時,F(xiàn)eatureDataConverter對象能夠使數(shù)據(jù)在Geodatabase,ShapeFile和Coverages等大多數(shù)的數(shù)據(jù)類型(除了標(biāo)注)之間實現(xiàn)轉(zhuǎn)換。在把數(shù)
11、據(jù)引入Geodatabase時,可以進(jìn)行數(shù)據(jù)的條件篩選,只將符合條件的要素轉(zhuǎn)換到目標(biāo)要素集;當(dāng)進(jìn)行數(shù)據(jù)轉(zhuǎn)入到ArcSDE Geodatabase中時,還可以通過配置ArcSDE的某些關(guān)鍵字來指定存儲參數(shù)。4. 數(shù)據(jù)格式轉(zhuǎn)換以ConvertFeatureClass方法為例說明,其轉(zhuǎn)換過程各參數(shù)意義如下:1)InputDatasetName(IFeatureClassName)參數(shù) 用于指定輸入要素類的一個Name對象,以確定待轉(zhuǎn)換的矢量數(shù)據(jù)。 2)InputQueryFilter(IQueryFilter)參數(shù) 用于過濾要轉(zhuǎn)換的要素的QueryFilter對象,用以篩選待轉(zhuǎn)換的矢量數(shù)據(jù)。 3)o
12、utputFDatasetName(IFeatureDatasetName)參數(shù) 轉(zhuǎn)換完成的要素類輸出的新數(shù)據(jù)結(jié)果集成到現(xiàn)有數(shù)據(jù)集的IFeatureDatasetName對象中。 4)outputFClassName(IFeatureClassName)參數(shù) 轉(zhuǎn)換完成后,輸出要素類的Name對象。 5)OutputGeometryDef(IGeometryDef)參數(shù) 用于指定輸出要素類的空間參考信息的GeometryDef對象。如果為null,就使用輸入要素類的空間參考信息。 6)OutputFields(IFields)參數(shù) 用于指定輸出要素類的字段集。如果把要素結(jié)果類輸出為同樣的數(shù)據(jù)格式
13、,可以使用輸入的要素類的字段集。如果格式有變化,建議使用FieldChecker以確保輸出的格式有效。 7)configKey(string)參數(shù) 用于指定ArcSDE配置關(guān)鍵字的字符串。4. 數(shù)據(jù)格式轉(zhuǎn)換 實例詳解-將ShapeFile數(shù)據(jù)導(dǎo)入到File Geodatabase 本實例通過IFeatureDataConverte接口的ConvertFeatureClass方法將ShapeFile格式的數(shù)據(jù)轉(zhuǎn)換導(dǎo)入到File Geodatabase數(shù)據(jù)庫中,并可以設(shè)置屬性篩選條件進(jìn)行部分導(dǎo)入。 實例步驟:4. 數(shù)據(jù)格式轉(zhuǎn)換 實例詳解-通過數(shù)據(jù)解析方式實現(xiàn)ShapeFile數(shù)據(jù)轉(zhuǎn)CAD格式數(shù)據(jù)
14、實現(xiàn)思路:首先通過對ShapeFile數(shù)據(jù)的遍歷以及屬性條件進(jìn)行篩選,然后將符合條件的數(shù)據(jù)利用System.IO.TextWrite方法類進(jìn)行CAD文件的寫入,實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)化。 實現(xiàn)步驟:首先獲取地圖中加載的ShapeFile數(shù)據(jù)轉(zhuǎn)換為ILayer接口的對象,然后選擇轉(zhuǎn)換成功后CAD格式數(shù)據(jù)的存儲路徑,調(diào)用封裝的ConvertShapeToDXF類中的轉(zhuǎn)換方法實現(xiàn)轉(zhuǎn)換,轉(zhuǎn)換成功后進(jìn)行信息提示;獲取 FeatureLayer對象的數(shù)據(jù)最大范圍矩形,并據(jù)此進(jìn)行CAD文件區(qū)域范圍的寫入; 初始化構(gòu)建CAD文件屬性表;初始化構(gòu)建CAD文件塊;初始化構(gòu)建CAD文件實體,即將解析后的ShapeFile
15、數(shù)據(jù)進(jìn)行CAD文件格式的寫入,此過程可以針對寫入的要素進(jìn)行條件篩選;以Point對象為例,設(shè)置CAD對象的線長、顏色。此外,Polyline和Polygon也可以參照此方法進(jìn)行設(shè)置,不過要比Point復(fù)雜,具體代碼請讀者參考隨書光盤;5. 添加X Y數(shù)據(jù) ArcGIS軟件中有添加X、Y數(shù)據(jù)的功能,目的是將以X、Y二維幾何坐標(biāo)形式存儲的數(shù)據(jù)轉(zhuǎn)換為GIS中的圖形數(shù)據(jù)。 相關(guān)類與接口 實現(xiàn)將包含X、Y坐標(biāo)的文本文件、Excel文件或者Access文件生成GIS的點數(shù)據(jù)的接口主要有:IXYEventSource、IXYEventSourceName和IXYEvent2FieldsProperties等
16、。5. 添加X Y數(shù)據(jù) 相關(guān)類與接口 1)IXYEventSource接口 IXYEventSourceName接口的Open方法執(zhí)行將X、Y數(shù)據(jù)轉(zhuǎn)化為IFeatureClass的功能,形成空間數(shù)據(jù)。 2)IXYEventSourceName接口 IXYEventSourceName接口主要用于初始化XYEventSourceNameClass對象,利用其EventProperties屬性賦予IXYEvent2FieldsProperties初始化對象值,完成屬性的傳遞。同時IXYEventSourceName對象強(qiáng)制轉(zhuǎn)化為IName對象,借助IName對象的Open方法形成IXYEventS
17、ource空間要素數(shù)據(jù)集,即可強(qiáng)制轉(zhuǎn)化為IFeatureClass空間矢量要素數(shù)據(jù)集,然后可進(jìn)行數(shù)據(jù)加載。 3)IXYEvent2FieldsProperties接口 IXYEvent2FieldsProperties接口主要用于賦予EventProperties屬性值,通過SpatialReference 屬性賦予坐標(biāo)系統(tǒng)和EventTableName 屬性賦予事件數(shù)據(jù)結(jié)果表名稱。5. 添加X Y數(shù)據(jù) 實例詳解-帶有X、Y字段的Excel數(shù)據(jù)表轉(zhuǎn)為點數(shù)據(jù) 本例將帶有X、Y字段的Excel數(shù)據(jù)表轉(zhuǎn)化為點要素類,通過指定對應(yīng)的數(shù)據(jù)字段和坐標(biāo)參考將表對象轉(zhuǎn)化為IFeatureClass對象。 實現(xiàn)
18、的具體步驟為: 向工程項目中添加自定義窗體,該窗體命名為“FrmXYToPoint”,其設(shè)計布局和屬性設(shè)置。 利用打開Excel坐標(biāo)文件的【打開】按鈕的Click方法實現(xiàn)通過OleDbConnection數(shù)據(jù)訪問類打開Excel數(shù)據(jù),并讀取Excel中Sheet列表添加到“選擇坐標(biāo)數(shù)據(jù)表”下拉列表控件中; 利用“選擇坐標(biāo)數(shù)據(jù)表”下拉列表中的SelectedIndexChanged事件讀取所選擇的Sheet表中字段集合并加載到X、Y字段選擇下列列表中; 利用數(shù)據(jù)轉(zhuǎn)化【成圖】按鈕的Click方法執(zhí)行數(shù)據(jù)轉(zhuǎn)換過程; 數(shù)據(jù)轉(zhuǎn)化完成,帶有X、Y坐標(biāo)字段的數(shù)據(jù)轉(zhuǎn)換成點數(shù)據(jù)。6. 使用GP工具進(jìn)行空間分析 ArcToolbox是所有工具的集合,提供工具運行的環(huán)境。在ArcGIS Engine編程過程中,可以通過調(diào)用GP工具來實現(xiàn)某些常用的功能。 相關(guān)類與接口 調(diào)用GP工具主要應(yīng)用了GeoProcessor類,這個類也可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濰坊沙龍-活動策劃方案(3篇)
- 長治燒烤活動策劃方案(3篇)
- 2026甘肅蘭州蘭石中科納米科技有限公司招聘備考題庫附答案
- 2026福建福州市閩侯縣公安局第1期招聘警務(wù)輔助人員77人備考題庫附答案
- 2026西藏文物局引進(jìn)急需緊缺人才3人備考題庫附答案
- 2026貴州遵義市紅花崗區(qū)選調(diào)事業(yè)單位工作人員18人備考題庫附答案
- 2026重慶合川區(qū)太和中心衛(wèi)生院公開招聘參考題庫附答案
- 2026陜西省商貿(mào)學(xué)校招聘教師(4人)考試備考題庫附答案
- 中共紹興市紀(jì)委紹興市監(jiān)委公開選調(diào)下屬事業(yè)單位工作人員5人備考題庫附答案
- 公務(wù)員考試語句表達(dá)真題300道含完整答案(網(wǎng)校專用)
- 2026屆浙江省寧波市九校數(shù)學(xué)高一上期末監(jiān)測試題含解析
- 2025-2030中國低壓變頻器行業(yè)營銷渠道及投融資方式分析研究報告
- 渠道管理制度規(guī)范
- 2026陜西省森林資源管理局局屬企業(yè)招聘(55人)備考題庫附答案
- 2025年企業(yè)安全生產(chǎn)培訓(xùn)講義
- 食品添加劑生產(chǎn)質(zhì)量管理手冊(標(biāo)準(zhǔn)版)
- 《內(nèi)科護(hù)理》課件-學(xué)前先知:腺垂體功能減退癥病人的護(hù)理課件
- 2025-2026學(xué)年北京西城區(qū)初三(上期)期末物理試卷(含答案)
- 【初中 歷史】2025-2026學(xué)年統(tǒng)編版八年級歷史上冊期末材料分析題練習(xí)
- 2026年2026年健康飲食防失眠培訓(xùn)課件
- 廣西華盛集團(tuán)廖平糖業(yè)有限責(zé)任公司招聘筆試題庫2026
評論
0/150
提交評論