今天給各位分享田間地圖gis接口的知識(shí),其中也會(huì)對(duì)田間地圖gis接口設(shè)計(jì)進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!
目錄一覽:
- 1、如何用gis實(shí)現(xiàn)百度地圖的展示實(shí)例?
- 2、MAPGIS數(shù)據(jù)類型
- 3、用mapgis把地形圖做成dem圖?
- 4、gis與視頻監(jiān)控怎樣集成?接口?
如何用gis實(shí)現(xiàn)百度地圖的展示實(shí)例?
你如果要自己用Flex做的話,就要首先獲取百度地圖的瓦片服務(wù)的地址,要做路徑查詢的話還要獲取百度地圖路徑分析服務(wù)的地址!現(xiàn)在是比賽的季節(jié),ESRI聯(lián)合天地圖開(kāi)放了地圖服務(wù)接口,,你可以參考下,至于你說(shuō)的那些什么標(biāo)記,繪制都可以在Flex中用代碼實(shí)現(xiàn)
MAPGIS數(shù)據(jù)類型
0 引言
正在開(kāi)展的國(guó)土資源科學(xué)數(shù)據(jù)共享工程的建設(shè)是一項(xiàng)長(zhǎng)期的工程,其目標(biāo)之一是對(duì)已有資源進(jìn)行整合發(fā)布,以供廣大用戶使用。因此,科學(xué)數(shù)據(jù)共享工程所提供的數(shù)據(jù),其格式必須是能夠讓大多數(shù)用戶都能夠使用的,而能夠被大多數(shù)用戶所使用的數(shù)據(jù)就是當(dāng)前占主流地位的ArcGIS 數(shù)據(jù)。
![](/zb_users/plugin/erx_Weixin/img/zzcm1.jpg)
添加微信好友, 獲取更多信息
復(fù)制微信號(hào)
但是由于一直以來(lái)地礦部門所采用GIS 軟件基本上是MapGIS ,導(dǎo)致我們目前擁有大量的MapGIS 格式的GIS 數(shù)據(jù)需要被轉(zhuǎn)換成可供發(fā)布的ArcGIS 數(shù)據(jù)格式。例如:當(dāng)前《水文地質(zhì)圖集》里面的68 幅圖都是MapGIS 格式,需要將其轉(zhuǎn)換成可被共享的ArcGIS 數(shù)據(jù)格式。因此現(xiàn)在的首要任務(wù)是找到便利的手段將MapGIS 數(shù)據(jù)轉(zhuǎn)換成ArcGIS 數(shù)據(jù)。
MapGIS 數(shù)據(jù)向ArcGIS 的轉(zhuǎn)換是一個(gè)復(fù)雜的課題。雖然研究的都是GIS 數(shù)據(jù),由于GIS 數(shù)據(jù)本身的復(fù)雜性,涉及到點(diǎn)、線、區(qū)等不同特征的圖形數(shù)據(jù),MapGIs 與ArcGIs 的數(shù)據(jù)格式和數(shù)據(jù)組織存儲(chǔ)方式都不相同,導(dǎo)致ArcGIS 軟件并不能直接讀取MapGIS 數(shù)據(jù)。所以,當(dāng)前一個(gè)重要任務(wù)就是研究出MapGIS 向ArcGIS 數(shù)據(jù)無(wú)損轉(zhuǎn)換工具。
另外,從避免重復(fù)建設(shè)這一角度來(lái)看,這一研究課題也具有很深的意義。由于MapGIS 在我國(guó)各領(lǐng)域應(yīng)用十分廣泛,我國(guó)很多GIS 數(shù)字化工作都是基于MapGIS 這一平臺(tái)來(lái)加以實(shí)現(xiàn)的。而生產(chǎn)ArcGIS 的 ESRI 公司一直引領(lǐng)著全球GIS 技術(shù)的發(fā)展方向,30 多年來(lái)始終保持其全球之一的市場(chǎng)占有率。隨著Arc GIS 平臺(tái)在我國(guó)各領(lǐng)域的應(yīng)用逐漸廣泛,這就需要Arc GIS 軟件能夠讀取已經(jīng)投入大量人力物力進(jìn)行數(shù)字化工作后得到MapGIS 數(shù)據(jù)。否則,就會(huì)造成數(shù)據(jù)矢量化的重復(fù)建設(shè)。
綜上所述,MapGIs 向ArcGIs 數(shù)據(jù)轉(zhuǎn)換研究也就成為了當(dāng)前一個(gè)重要的研究?jī)?nèi)容。
1 現(xiàn)實(shí)轉(zhuǎn)換存在的問(wèn)題
通過(guò)大量的調(diào)研發(fā)現(xiàn),當(dāng)前國(guó)內(nèi)所普遍采用的MapGIS 數(shù)據(jù)向ArcGIS 數(shù)據(jù)轉(zhuǎn)換的 *** 主要是運(yùn)用MapGIS 自身所提供的文件轉(zhuǎn)換模塊來(lái)進(jìn)行,其提供的向ArcGIS 轉(zhuǎn)換的方式包括轉(zhuǎn)換成ArcGIS 的SHAPE 格式或者是E00 格式。但是運(yùn)用這種方式轉(zhuǎn)換后會(huì)存在很多問(wèn)題,不能實(shí)現(xiàn)無(wú)損轉(zhuǎn)換,轉(zhuǎn)換后還需要進(jìn)行大量的手工修補(bǔ)工作,因此這種當(dāng)前普遍采用的 *** 會(huì)耗費(fèi)大量的人力、物力,并不能夠很好地滿足實(shí)際需要;另外,經(jīng)研究發(fā)現(xiàn),很多的研究人員發(fā)現(xiàn)了這一問(wèn)題,也進(jìn)行了大量的研究工作,取得了一定的理論成績(jī),但是卻還沒(méi)有形成可供投人使用的成果,即自動(dòng)轉(zhuǎn)換工具。綜上所述,當(dāng)前國(guó)內(nèi)MapGIS 數(shù)據(jù)向ArcGIS 數(shù)據(jù)轉(zhuǎn)換的研究還不很成熟,不能很好地滿足實(shí)際需要。
經(jīng)親自試驗(yàn)MapGIS 文件轉(zhuǎn)換模塊所提供的MapGIs ArCGIS 轉(zhuǎn)換工具后發(fā)現(xiàn)存在著諸多問(wèn)題。
( l )轉(zhuǎn)換成ArcGIS 的SHAPE 格式時(shí)存在的問(wèn)題為:
a 、點(diǎn)文件:MapGIS 點(diǎn)文件中的子圖、注釋都用一種不對(duì)應(yīng)的子圖符號(hào)在ArcGIS 中顯示出來(lái),而且對(duì)應(yīng)的顏色都丟失,變?yōu)锳rcGIS 的缺省顏色;
b 、線文件:將MapGIS 線文件轉(zhuǎn)換后,在ArcGIS 中顯示出來(lái)時(shí),發(fā)現(xiàn)線的顏色都變成了統(tǒng)一的ArcGIS 的缺省顏色;
c 、區(qū)文件:將MapGIS 區(qū)文件轉(zhuǎn)換后,在ArcGIS 中顯示出來(lái)時(shí),發(fā)現(xiàn)區(qū)的顏色都變成了統(tǒng)一的Arc GIS 的缺省顏色,而且因?yàn)镾HAPE 文件并不保存拓?fù)潢P(guān)系,所以MapGIS 區(qū)文件的拓?fù)潢P(guān)系也被丟失。
( 2 )轉(zhuǎn)換成ArcGIS 的E00 格式時(shí)存在的問(wèn)題為:
a 、點(diǎn)文件:MapGIS 點(diǎn)文件中的子圖、注釋都可以轉(zhuǎn)換過(guò)去,但是子圖符號(hào)不對(duì)應(yīng),對(duì)應(yīng)的顏色都丟失,變?yōu)锳rcGIS 的缺省顏色,并且點(diǎn)文件的屬性信息丟失;
b 、線文件:將MapGIS 線文件轉(zhuǎn)換后,在Arc GIS 中顯示出來(lái)時(shí),發(fā)現(xiàn)線的顏色都變成了統(tǒng)一的ArcGIS 的缺省顏色,并且線文件的屬性信息丟失;
c 、區(qū)文件:將MapGIS 區(qū)文件轉(zhuǎn)換后,在Arc GIS 中顯示出來(lái)時(shí),發(fā)現(xiàn)區(qū)的顏色都變成了統(tǒng)一的ArcGIS 的缺省顏色,而且區(qū)文件的屬性信息丟失。由此可以看出,在將MapGIS 文件向Arc 以S 文件轉(zhuǎn)換的過(guò)程中,為使文件正確顯示,按照目前通用的 *** 轉(zhuǎn)換后通常需要進(jìn)行復(fù)雜的手工調(diào)整,而轉(zhuǎn)換的數(shù)據(jù)量較大,這將耗費(fèi)大量的人力、物力和時(shí)間。
2 技術(shù)路線及具體實(shí)施方案
2 . 1 技術(shù)路線的選擇通過(guò)研究,發(fā)現(xiàn)通用的數(shù)據(jù)格式轉(zhuǎn)換方式有以下幾種:
( l )常規(guī)的GIS 數(shù)據(jù)格式轉(zhuǎn)化 ***
就是采用某種編程語(yǔ)言首先讀取源數(shù)據(jù)文件,提取源文件中的圖形信息和屬性信息,然后再寫人目標(biāo)文件中去。這種 *** 的優(yōu)點(diǎn)是由于訪問(wèn)的是明碼數(shù)據(jù)格式,可用程序進(jìn)行直接讀取。但是,這種 *** 會(huì)導(dǎo)致數(shù)據(jù)的丟失,也無(wú)法進(jìn)行渲染方式的轉(zhuǎn)換。因此,從根本上來(lái)說(shuō),此種 *** 無(wú)法實(shí)現(xiàn)GIS 數(shù)據(jù)的無(wú)損轉(zhuǎn)換。例如:首先將MapGIS 點(diǎn)(wt )、線( wl )、面(wp ) 文件在MapGIS 的文件轉(zhuǎn)換模塊中轉(zhuǎn)換成MapGIS 的明碼文件,運(yùn)用C + +來(lái)進(jìn)行編程,讀取MapGIS 明碼文件中的圖形及其屬性的相關(guān)信息,再對(duì)應(yīng)地寫人到ArcGIS 的SHAPEFILE 文件中去。但是MapGIS 的明碼文件不保存圖形的屬性信息,所以無(wú)法通過(guò)明碼文件之間的轉(zhuǎn)換來(lái)實(shí)現(xiàn)數(shù)據(jù)無(wú)損轉(zhuǎn)換。
( 2 )利用數(shù)據(jù)格式轉(zhuǎn)換工具
這種 *** 簡(jiǎn)單方便,易于實(shí)現(xiàn),但是通用數(shù)據(jù)格式轉(zhuǎn)換器難以避免的會(huì)丟失一些圖形信息,轉(zhuǎn)換出來(lái)的圖形一般還需要一些特別的處理,如圖形顏色設(shè)置,符號(hào)設(shè)置,區(qū)域填充設(shè)置,拓?fù)涞闹亟ǖ取@纾哼\(yùn)用MapGIS 的文件轉(zhuǎn)換模塊,將MapGIS 的點(diǎn)(wt )、線(wl )、面(wp )文件轉(zhuǎn)換成ArcGIS 的E00 格式文件,用ArcGIS 進(jìn)行讀取。這種 *** 只需要借助于MapGIS 現(xiàn)已提供的文件轉(zhuǎn)換模塊就可以進(jìn)行。但是轉(zhuǎn)換后發(fā)現(xiàn)會(huì)存在信息的丟失,轉(zhuǎn)換出來(lái)的圖形一般還需要一些特別的處理,如圖形顏色設(shè)置,符號(hào)設(shè)置,區(qū)域填充設(shè)置、拓?fù)涞闹亟ǖ取@纾簩?duì)于點(diǎn)文件,由于兩種軟件的子圖庫(kù)并不對(duì)應(yīng),所以會(huì)出現(xiàn)轉(zhuǎn)換后,點(diǎn)圖形文件的子圖顯示不一致現(xiàn)象。
( 3 )利用第三方數(shù)據(jù)文件訪問(wèn)工具進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換
這種 *** 需要開(kāi)發(fā)出第三方的數(shù)據(jù)訪問(wèn)組件。隨著GIS 組件式開(kāi)發(fā)技術(shù)的逐漸成熟,各種GIS 軟件基本都提供了訪問(wèn)其本身的GIS 數(shù)據(jù)的組件,如Ar-cobject 可以訪問(wèn)ESRI ShaPe Files 、Arclnfo Coverage 和VPF 等矢量數(shù)據(jù)格式;MaPGIS SDE 可以訪問(wèn)MapGIS 的WT 、WL 、WP 等文件的數(shù)據(jù)信息。利用GIS 組件的這種特點(diǎn)可以自己靈活的編寫與其他數(shù)據(jù)格式轉(zhuǎn)換的程序,或者在GIS 系統(tǒng)的二次開(kāi)發(fā)中集成數(shù)據(jù)格式轉(zhuǎn)換的功能,實(shí)現(xiàn)GIS 數(shù)據(jù)共享。
例如:運(yùn)用VB 工具進(jìn)行編程,運(yùn)用MapGISSDK 和ArcoBJECT 對(duì)MapGIS 和ArcGIS 進(jìn)行二次開(kāi)發(fā),開(kāi)發(fā)出實(shí)現(xiàn)MapGIS 到ArcGIS 數(shù)據(jù)轉(zhuǎn)換的組件。
利用第三方數(shù)據(jù)文件訪問(wèn)工具進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換具有很高的可行性。因?yàn)殡S著GIS 組件式開(kāi)發(fā)技術(shù)的逐漸成熟,各種GIS 軟件基本都提供了訪問(wèn)其本身的GIS 數(shù)據(jù)的組件。通過(guò)這些提供的組件可以獲取圖形參數(shù),在不同平臺(tái)提供的數(shù)據(jù)接口間進(jìn)行傳遞,實(shí)現(xiàn)對(duì)MapGIS 圖形信息的讀取,并寫人到ArcGIS 的相應(yīng)文件。這種方式比之一種方式具有更高的可行性,比第二種方式更能夠?qū)崿F(xiàn)圖形的正確讀取,節(jié)省人力、物力。
綜合比較這三種數(shù)據(jù)格式轉(zhuǎn)換方式的優(yōu)缺點(diǎn),本次設(shè)計(jì)決定采用第三種方式來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,即利用第三方數(shù)據(jù)文件訪問(wèn)工具進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換。
2 . 2 具體實(shí)施方案
本次設(shè)計(jì)的實(shí)施方案就是避免采用中間格式(如E00)進(jìn)行轉(zhuǎn)換,運(yùn)用VB 編程語(yǔ)言對(duì)這兩個(gè)GIS 平臺(tái)進(jìn)行二次開(kāi)發(fā),通過(guò)MaPGIS 提供的MapGIS SDK 開(kāi)發(fā)包調(diào)用相應(yīng)的接口實(shí)現(xiàn)對(duì)MapGIS 圖形數(shù)據(jù)文件的訪問(wèn),通過(guò)ArcGIS 提供的開(kāi)發(fā)包ArcOBJECTS 調(diào)用相應(yīng)的接口實(shí)現(xiàn)數(shù)據(jù)向目標(biāo)文件的寫人和文件的生成。開(kāi)發(fā)出可以實(shí)現(xiàn)MapGIS 到AroGIS 進(jìn)行數(shù)據(jù)無(wú)損轉(zhuǎn)換的工具,實(shí)現(xiàn)ArcGIS 平臺(tái)對(duì)MapGIS 數(shù)據(jù)的有效讀取。
兩個(gè)GIS 平臺(tái)的數(shù)據(jù)組織方式不同,MapGIS 的數(shù)據(jù)文件包括點(diǎn)文件、線文件、面文件,ArcGIS 的數(shù)據(jù)文件包括點(diǎn)文件、注記文件、線文件、面文件。它們的對(duì)照關(guān)系如表1所示。
具體實(shí)施方案主要分為三個(gè)大的方面:
( l ) MapGIS 文件內(nèi)容的讀取
MapGIS 平臺(tái)提供兩種數(shù)據(jù)格式:一種是MapGIS 明碼數(shù)據(jù)格式,這種格式訪問(wèn)方便,利用程序可以直讀直取,但是由于此種文件不保存MapGIS 平臺(tái)所生成的屬性信息,所以在本次設(shè)計(jì)中不加以使用;
第二種是MapGIS 自帶的加密數(shù)據(jù)格式,即wT 、WL 、WP 格式,這種格式保存了所有數(shù)據(jù)的內(nèi)容,程序不能直接讀取,但通過(guò)調(diào)用MapGIS 提供的開(kāi)發(fā)包
SDK )可以實(shí)行對(duì)文件的訪問(wèn)。
本設(shè)計(jì)決定在MapGIS SDK 的基礎(chǔ)上進(jìn)行MapGIs 的wT 、wL 、wP 文件內(nèi)容的全部讀取。包括:
① 點(diǎn)文件的圖形坐標(biāo)、屬性信息、渲染方式(子圖號(hào)、注釋內(nèi)容、顏色、字體等);
讀取點(diǎn)文件的圖形坐標(biāo)信息可通過(guò)調(diào)用PNTAREA 的getpos *** 來(lái)實(shí)現(xiàn)。
讀取點(diǎn)文件的屬性信息主要是通過(guò)讀取字段頭Record- Head 的相關(guān)信息,來(lái)獲取相應(yīng)點(diǎn)文件共包含多少字段,字段類型及名稱。通過(guò)Record 的item ( index )屬性來(lái)獲取每條記錄。
Fori = 0 To pntAi . att . stru . numbfield 一l
pfldname = pntAi . att . stru ( i ) . FieldName
pfldtype = pntAi . att . stru ( i ) . FieldType
¨¨¨¨¨¨
¨¨¨¨¨¨
Next i
代碼中,numbfield 為字段數(shù),F(xiàn)ieldName 為字段名,F(xiàn)ield pe 為字段類型。
Dim att As Record
Dim flag As Integer
flag = pntAi . att . Get ( pi , att )
¨¨¨¨¨¨
¨¨¨¨¨¨
代碼中,att 為Record 類型變量,記錄了相應(yīng)點(diǎn)實(shí)體的屬性記錄值,通過(guò)對(duì)att 相應(yīng)屬性的調(diào)用可以讀取各字段對(duì)應(yīng)點(diǎn)實(shí)體的相關(guān)記錄。讀取點(diǎn)文件的渲染方式信息需要調(diào)用PNTAREA 的Getlnfo *** ,通過(guò)Pnt-Info 的type 等屬性來(lái)獲取點(diǎn)實(shí)體類型、子圖號(hào)等信息;通過(guò)Pnt-Info 的iclr 屬性來(lái)獲取點(diǎn)實(shí)體的顏色信息。
② 線文件的圖形坐標(biāo)、線顏色、屬性信息;
讀取線文件的圖形坐標(biāo)信息可以通過(guò)調(diào)用LinArea 、D_Dotset 、LinArea 的att 屬性以及Get *** 等來(lái)實(shí)現(xiàn)。
Dim inf As Lin Info
Dim pos AsD 一Dotset
Dim dot 1 As D Dot
Dim dotZ As D Dot
rtl = linAi . Get ( 11 , pos , inf , dimension )
Set dotl = pos . ltem ( i )
Set dotZ = pos . Item ( i + l )
¨¨¨¨¨¨
¨¨¨¨¨¨
代碼中, li為線實(shí)體號(hào),inf 為L(zhǎng)in--Info 類型變量,pos為D_Dotset 類型變量,pos的Item 屬性是存儲(chǔ)了系列線坐標(biāo)的數(shù)組。
讀取線文件的屬性信息需要用到LinAit 的Get *** 以及stm 屬性,主要是通過(guò)讀取字段頭Record _ Head 的相關(guān)信息,來(lái)獲取相應(yīng)線文件共包含多少字段,字段類型及名稱。通過(guò)Record 的item ( index )屬性來(lái)獲取每條記錄。
讀取線文件的渲染方式信息需要調(diào)用LinArea 的Getlnfo *** 。
③ 區(qū)文件的邊界組成坐標(biāo)、區(qū)填充顏色、填充圖案、屬性信息。
讀取區(qū)文件的圖形坐標(biāo)信息需要用到MapGIS SDK 提供的對(duì)象RegArea、D Dotset、D_Dotset 的Count及Item 屬性、Re rea 的Get *** 等。
讀取區(qū)文件的屬性信息需要用到RegAtt 的Get *** ,Record 的item ( index )屬性,主要是通過(guò)讀取字段頭Record_Head 的相關(guān)信息,來(lái)獲取相應(yīng)區(qū)文件共包含多少字段,字段類型及名稱。通過(guò)Record 的item ( index )屬性來(lái)獲取每條記錄。
讀取區(qū)文件的渲染方式信息需要調(diào)用RegArea 的Getlnfo *** ,通過(guò)Reglnfo的Path 。等屬性來(lái)獲取區(qū)實(shí)體填充圖案等信息;通過(guò)Reg--Info 的。lr屬性來(lái)獲取區(qū)實(shí)體的填充顏色信息。
Dim reginfo As Reg--Info 、
rtl = regAi . Getlnfo ( ri , reginfo )
¨¨¨¨¨¨
¨¨¨¨¨¨
代碼中,reginfo 為Re Info 二類型變量,通過(guò)調(diào)用Reg--Info 的dr 屬性可以獲取區(qū)實(shí)體填充顏色信息。
( 2 )圖形數(shù)據(jù)向ArcGIS 接口寫人,生成SHAPE - FILE 文件
目前ArcGIS 使用的shapefile 文件是GIS 的通用文件格式,在該步驟中,決定統(tǒng)一通過(guò)訪問(wèn)ArcGIS 提供的開(kāi)發(fā)包生成shapefile 數(shù)據(jù)文件。
Shapefile 文件由包含空間信息和屬性信息的三個(gè)文件組成,分別為:坐標(biāo)文件(. shp )、屬性文件( . dbf )、索引文件(. Shx )。
坐標(biāo)文件(. shp )的文件頭是一個(gè)長(zhǎng)度固定(100 bytes )的記錄段,一個(gè)有9 個(gè)int 型和7 個(gè)double 型數(shù)據(jù)。坐標(biāo)文件的實(shí)體信息負(fù)責(zé)記錄坐標(biāo)信息,它以記錄段為基本單位,每一個(gè)記錄段記錄一個(gè)地理實(shí)體目標(biāo)的坐標(biāo)信息,每個(gè)記錄段分為記錄頭和記錄內(nèi)容兩部分(表2 )。
屬性文件(.dbf )用于記錄屬性信息。它是一個(gè)標(biāo)準(zhǔn)的D BF 文件,由頭文件和實(shí)體信息兩部分構(gòu)成(表3 )。
索引文件(.shx )主要包含坐標(biāo)文件的索引信息,文件中每個(gè)記錄包含對(duì)應(yīng)的坐標(biāo)文件記錄距離坐標(biāo)文件頭的偏移量。通過(guò)索引文件,可以很方便地在坐標(biāo)文件中定位到指定目標(biāo)的坐標(biāo)信息。生成,hapefile 文件,首先要建立相應(yīng)的字段,這些字段作為屬性數(shù)據(jù)被保存在屬性文件中。
Set pField = New esriGeodat ase . Field
Set pFieldEdit = pField
With pFieldEdit
. Name = " aoname "
. Type = esriFieldType . esriFieldTypeInteger
End With
pFieldsEdit . AddField pField
代碼中,添加了名為“aoname " ,類型為intege類型的字段。
有了字段后,就可以創(chuàng)建shapefile 文件了。
Set pfeatclass = pFWS . CreateFeatureClass ( strName , pFields , Nothing , Nothing , esriFYSimple , strshapeField - Name , " " )
該代碼創(chuàng)建了名為MyshaPeFilepnt 的shenle 文件。
最后就是向shapefile 文件中添加記錄。要用到IFeatureCursor 、IFeatureBuffer 、IFeatureClasS 的insert *** 來(lái)向?qū)傩员碇胁迦朊恳粭l記錄,并調(diào)用IFeatureClaSS 的CreateFeatureBuffer 來(lái)創(chuàng)建緩沖區(qū)存放這些記錄。
Set pfeaturecursor = pfeatclass . Insert ( True )
Set pFeatureBuffer = Pfeatclass . CreateFeatureBuffer
pFeatureBuffer . Value ( l ) = pPoint
¨¨¨¨¨¨
¨¨¨¨¨¨
nFeatureNumber = pfeaturecursor . InsertFeature ( pFea 一tureBuffer )
該代碼是調(diào)用生成的Shapefile 文件對(duì)應(yīng)的IFeatureClasS 接口的CreateFeatureBuffe : *** 創(chuàng)建緩沖區(qū),通過(guò)游標(biāo)IFeatureCursor 的InsertFeature *** 加人記錄。
至此,就生成了shapefile 文件。此時(shí)的shapefile 文件保存了MapGIS 文件的坐標(biāo)信息,屬性信息,但是渲染樣式還沒(méi)有對(duì)應(yīng)起來(lái),即圖形的顏色、圖案還沒(méi)有達(dá)到一致。需要在下一步的操作中來(lái)達(dá)到這一要求。
( 3 ) A rcGIS 工程文件(MXD )的生成
ArcGIS 的數(shù)據(jù)與渲染樣式是分開(kāi)保存的,數(shù)據(jù)保存在shape 、coverage 、geodatabase 等格式的數(shù)據(jù)文件中,渲染樣式保存在MXD 工程文件中。因此對(duì)渲染樣式方面參數(shù)的寫入主要是通過(guò)在相應(yīng)的數(shù)據(jù)文件里添加擴(kuò)展字段,用來(lái)存儲(chǔ)這些渲染信息。
具體如下:
① 建立MapGIs 與ArcGIs 符號(hào)對(duì)照表,記錄MapGIS 符號(hào)索引和相應(yīng)ArcGIS 符號(hào)索引;
② 建立ArcGIS 要素文件的擴(kuò)展字段,記錄渲染信息參數(shù),這些記錄渲染信息的擴(kuò)展字段(包括:MapGIS 符號(hào)索引、ArcGIS 符號(hào)索引、MapGIS 顏色號(hào)、對(duì)應(yīng)RGB 顏色)存儲(chǔ)在shapefile 文件的.dbf 文件中;(這部分的工作在第二步生成shapefile 文件字段的時(shí)候已經(jīng)完成)
具體做法為:
根據(jù)MaPGIS 符號(hào)索引號(hào)字段記錄的內(nèi)容,從符號(hào)對(duì)照表中讀取相應(yīng)的ArcGIS 符號(hào),將其寫到對(duì)應(yīng)要素的ArcGIS 符號(hào)索引字段中;
根據(jù)MapGIS 顏色號(hào)字段記錄的內(nèi)容,從顏色對(duì)照表中讀取相應(yīng)的RGB 顏色,將其寫到對(duì)應(yīng)要素RGB 顏色字段中;
詳情見(jiàn)圖1
該文件中,ID 為點(diǎn)實(shí)體號(hào),mappntcoln 為MapGIS 點(diǎn)實(shí)體對(duì)應(yīng)顏色號(hào),mapPntr *** 為顏色號(hào)對(duì)應(yīng)的RGB 值,為字符串類型,R--int為intege類型的red 值,G--int 為integer 類型的green 值,B_int 為integer 類型的hiue 值,這幾個(gè)值在進(jìn)行顏色渲染的時(shí)候會(huì)用到;類型字段存儲(chǔ)的為點(diǎn)類型相關(guān)信息,在進(jìn)行分類為ArcGIS 點(diǎn)文件和注記文件時(shí)會(huì)用到(圖2 )。
各字段對(duì)應(yīng)含義與用途和點(diǎn)文件字段類似,可參見(jiàn)點(diǎn)文件方面的描述(圖3 )。
各字段對(duì)應(yīng)含義以用途與點(diǎn)文件字段類似,可參見(jiàn)點(diǎn)文件方面的描述。
③ 記錄各要素符號(hào)信息后,可根據(jù)這些信息對(duì)各要素進(jìn)行自動(dòng)渲染操作;
利用ARCOBJECTS 中IUniquevalueRenderer 類、StyleGalle類、StyleGalle Item 類、EnumstyleGalle 巧Item 類進(jìn)行符號(hào)匹配顯示;
定義IUniquevalueRenderer 類的Isymbol 屬性來(lái)存儲(chǔ)顏色信息,將定義好的IUniquevalueRenderer 賦值給IGeoFeatureLayer ( mapcontrol 控件上加載的shaPe - file 文件),來(lái)對(duì)加載的文件進(jìn)行渲染。
Private Function GetRGBColor ( y ourRed As Integer , yourGreen As Integer , yourBhie As Integer ) As IRgbColor
Dim prgb As IRghColor
Set prgb = New RghColor
With prgb
·Red = yourRed
·Green = yourGreen
· Blue = yourBlue
End With
Set GetRGBColor = prgb
End Function
該函數(shù)可以根據(jù)給定的整型數(shù)據(jù)來(lái)生成RGB 顏色。
④ 將編輯完的要素保存成.mxd 格式,即ArcGIS 的工程文件。
該過(guò)程需要用到IAppliCation 的saveDocument 以及Shutdown *** 。
至此,就完成了對(duì)MapGIS 的完全讀取,并保存成ArcGIS 所支持的數(shù)據(jù)格式。
2 . 3 開(kāi)發(fā)環(huán)境的選擇
在GIS 二次開(kāi)發(fā)中,VB 開(kāi)發(fā)語(yǔ)言具有使用方便、開(kāi)發(fā)速度快的優(yōu)勢(shì),因此決定采用VB 作為編程語(yǔ)言;另外,還要用到MapGIS SDK 、ArcMAP 、ArcoB - JECTS 開(kāi)發(fā)包。
4 技術(shù)關(guān)鍵點(diǎn)
本次設(shè)計(jì)中的技術(shù)關(guān)鍵點(diǎn)包括如下幾個(gè)方面:
1 、在點(diǎn)數(shù)據(jù)的讀取和寫入中,由于雙方的點(diǎn)數(shù)據(jù)類型不一致,需要將MapGIs 所提供的注釋類點(diǎn)數(shù)據(jù)寫人到ArcGIS 的注記類文件中,而不是寫到點(diǎn)文件中。
2 、子圖類的點(diǎn)數(shù)據(jù)傳遞時(shí),需要在ArcGIS 數(shù)據(jù)文件中建立擴(kuò)展字段加以存儲(chǔ)子圖的類型信息,還要建立MapGIs 與AroGIS 的子圖對(duì)照表,進(jìn)行進(jìn)一步的轉(zhuǎn)換。
3 、在區(qū)文件的讀取和寫人中,要處理好“島”的問(wèn)題,即環(huán)中環(huán)的問(wèn)題,需要調(diào)用接口用算法實(shí)現(xiàn)環(huán)數(shù)、點(diǎn)數(shù)、每個(gè)環(huán)的點(diǎn)數(shù)等信息;另外,還要建立MapGIs 與ArcGIs 區(qū)填充圖案對(duì)照表。
4 、在顏色的處理上,要將MapGIS 的顏色庫(kù)文件轉(zhuǎn)換成文本文件,在運(yùn)用MaPGIS SDK 得到顏色號(hào)信息后,根據(jù)顏色號(hào)在文本文件夾中索引出對(duì)應(yīng)的顏色參數(shù)值。還需要在ArcGIS 的數(shù)據(jù)文件里建立擴(kuò)展字段用來(lái)存儲(chǔ)傳遞過(guò)來(lái)的顏色參數(shù)值。另外,還要建立MapGIs 與ArcGIs 的顏色對(duì)照表,加以轉(zhuǎn)換(圖4)。
5 結(jié)論
根據(jù)以上設(shè)計(jì)思路,在VB 開(kāi)發(fā)環(huán)境下,調(diào)用Mapcls sDK 、ARCMAP 、ARCoBJECT 開(kāi)發(fā)包進(jìn)行程序設(shè)計(jì),基本實(shí)現(xiàn)了初步設(shè)想,實(shí)現(xiàn)了點(diǎn)、線、面文件在坐標(biāo)、屬性上的完全一致,顏色、圖案信息的基本一致。為后續(xù)GIS 格式轉(zhuǎn)換方面的研究提供了一個(gè)好的解決思路。
用mapgis把地形圖做成dem圖?
1、打開(kāi)mapgis,點(diǎn)擊菜單欄中“圖像處理→圖像分析”后,跳出圖像分析窗口。
2、選擇轉(zhuǎn)換數(shù)據(jù)類型:JPEG文件(*.jpg);
3、添加文件,找到處理好的圖片,添加進(jìn)去。
4、點(diǎn)擊“轉(zhuǎn)換”,轉(zhuǎn)換成功后會(huì)提示你轉(zhuǎn)換成功。
5、點(diǎn)擊打開(kāi),找到轉(zhuǎn)換成功的msi圖像,預(yù)覽下。
gis與視頻監(jiān)控怎樣集成?接口?
這個(gè)應(yīng)當(dāng)不難吧 朋友
首先選擇你需要的電子地圖.
其次選擇你所需要的GIS二次開(kāi)發(fā)平臺(tái),由GIS來(lái)處理空間地圖,一般的GIS的圖層基本都是由點(diǎn).線.面.文字.圖片等元素組成.在你需要看的地方標(biāo)注為(例如:點(diǎn))
然后根據(jù)你的點(diǎn)屬性,與視頻窗口做關(guān)聯(lián)關(guān)系.
可以調(diào)用數(shù)據(jù)庫(kù)中的數(shù)據(jù).進(jìn)行處理.
在處理視頻和地理信息結(jié)合方面,目前TopMap軟件做的不錯(cuò).以前做這方面的時(shí)候和他們的技術(shù)打過(guò)交道.你可以參考下.
關(guān)于田間地圖gis接口和田間地圖gis接口設(shè)計(jì)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。