很多同學(xué)使用ArcGIS很熟練,但是對(duì)于其中的一些實(shí)現(xiàn)原理卻不知道,今天小編就帶大家用大白話(很多代碼都有詳細(xì)注釋哦!)談?wù)勛詈?jiǎn)單的實(shí)現(xiàn)讀取柵格和矢量文件吧!
1
讀取柵格文件
1.創(chuàng)建windows窗體應(yīng)用程序,設(shè)置相關(guān)控件(坡向,坡度,打開文件)。
2.定義一些全局變量,為方法函數(shù)的實(shí)現(xiàn)服務(wù)。
3.將讀取的柵格文件在窗口顯示出來(lái)需要為繪制圖形設(shè)置相關(guān)屬性,比如畫布規(guī)格,畫筆大小,特別是顏色的調(diào)節(jié)更為重要。下面就是具體如何去對(duì)柵格數(shù)據(jù)進(jìn)行按行循環(huán)讀取判斷,定義一些字段表示讀取的柵格數(shù)據(jù)。柵格文件里面的數(shù)據(jù)顯示如下圖,有明顯的文件頭,里面包含了許多的重要信息,比如行數(shù),列數(shù),最值等等。
5.最后在設(shè)置好的控件方法里面調(diào)用已經(jīng)寫好的方法,包括坡度,坡向以及展示成果。
6. 結(jié)果展示
原始DEM圖像
基于DEM數(shù)據(jù)進(jìn)行的坡度提取
基于DEM數(shù)據(jù)進(jìn)行的坡向提取
2
讀取矢量文件
這是官方對(duì)矢量數(shù)據(jù)的一些相關(guān)定義,對(duì)其的讀取都將圍繞這些規(guī)則來(lái)展開。
這個(gè)表很重要
(1)首先對(duì)矢量文件進(jìn)行搜索讀取進(jìn)來(lái)分析處理。
(2)定義一些結(jié)構(gòu)成員用來(lái)存儲(chǔ)文件頭里面的重要信息,后面數(shù)據(jù)的提取都要利用這些作為條件去執(zhí)行。
(3)對(duì)提取的矢量文件參數(shù)進(jìn)行定義,比如該矢量文件有多少個(gè)面組成,每個(gè)面有多少個(gè)點(diǎn),哪個(gè)是起始點(diǎn),哪個(gè)是終結(jié)點(diǎn)以及點(diǎn)的坐標(biāo)等相關(guān)屬性信息。
(4)由前面官方對(duì)矢量數(shù)據(jù)的一些相關(guān)定義可知,在其中有些字節(jié)上面需要反轉(zhuǎn)字節(jié)順序再轉(zhuǎn)換數(shù)據(jù)類型。
(5)由于矢量文件是由無(wú)數(shù)的點(diǎn)及其X,Y坐標(biāo)構(gòu)成的,所以每一個(gè)坐標(biāo)的讀取都不可以出現(xiàn)任何問(wèn)題,為此需要對(duì)其進(jìn)行異常處理,并把每一個(gè)點(diǎn)的坐標(biāo)存儲(chǔ)到一個(gè)數(shù)組里面去。
(6)文件讀取完畢就要顯示到窗口,下面就對(duì)窗口相關(guān)數(shù)據(jù)進(jìn)行設(shè)置,包括畫布,畫筆(紅色),不過(guò)在顯示之前需要進(jìn)行坐標(biāo)轉(zhuǎn)換,畢竟是從地理坐標(biāo)顯示到窗口這種平面坐標(biāo)嘛,否則顯示的圖形就會(huì)越界無(wú)法正常顯示。
讀取結(jié)果展示
成都途遠(yuǎn)GIS是一家專業(yè)致力于無(wú)人機(jī)航空攝影測(cè)繪、航空數(shù)據(jù)處理、GIS地理信息系統(tǒng)研發(fā)、數(shù)字孿生城市制作、數(shù)字沙盤模型等業(yè)務(wù)的創(chuàng)新型科技公司,為您提供一站式地理信息服務(wù)。
本文鏈接:http://www.lajichun.cn/blog/490.html
本文標(biāo)簽:ArcGIS