【摘 要】本文對(duì)GE開發(fā)相關(guān)技術(shù)進(jìn)行介紹,并基于VB開發(fā)出一個(gè)基于GE的林業(yè)GIS系統(tǒng),為林業(yè)GIS系統(tǒng)的開發(fā)提供了一種新的思路和方法。
【關(guān)鍵詞】GoogleEarth;GIS;林業(yè)
1.GoogleEarth簡(jiǎn)介
谷歌地球(GoogleEarth,簡(jiǎn)稱GE)是一款Google公司開發(fā)的虛擬地球儀軟件,它集成了地理信息系統(tǒng)、遙感和全球定位系統(tǒng)等高新技術(shù)的功能,免費(fèi)向用戶展示了全球范圍內(nèi)的衛(wèi)星影像和航拍影像和道路、水系、地名等基礎(chǔ)地理信息數(shù)據(jù)。它采用強(qiáng)勁的三維引擎和高速的數(shù)據(jù)壓縮傳輸技術(shù),進(jìn)行了金字塔式建庫,將超大數(shù)據(jù)量的衛(wèi)星影像通過Internet網(wǎng)進(jìn)行發(fā)布,數(shù)據(jù)在全球范圍內(nèi)周期性更新。GE幾乎可以應(yīng)用于傳統(tǒng)GIS領(lǐng)域如交通、軍事、農(nóng)業(yè)、國土、礦產(chǎn)、文物古跡保護(hù)、林業(yè)、海洋和城市規(guī)劃等。
2.GoogleEarth與KML文件
KML是一種基于XML語法格式的語言,可用于保存點(diǎn)、線、面、文字描述、3D模型、圖像等地理信息,具有易編輯、可網(wǎng)絡(luò)發(fā)布與共享、層次性與繼承性等優(yōu)點(diǎn),可以被GE解譯并在其平臺(tái)上顯示出相應(yīng)的地理要素模型。KML文件成為一個(gè)國際性標(biāo)準(zhǔn),能與ESRI、MapInfo、Intergraph、Surper Map等平臺(tái)的GIS數(shù)據(jù)進(jìn)行交換和信息共享。
林業(yè)空間數(shù)據(jù)首先需要利用ArcGIS或其他工具轉(zhuǎn)換為大地坐標(biāo)系,再轉(zhuǎn)換成KML(或KMZ,KMZ是壓縮后的KML文件)。用戶可借助網(wǎng)絡(luò)上提供的轉(zhuǎn)換工具也可通過二次開發(fā)進(jìn)行轉(zhuǎn)換。下面是一個(gè)由KML語言編寫的例子:
<?xmlversion=\"1.0\"encoding=\"UTF-8\"?>
這個(gè)實(shí)例描述了一個(gè)瞭望塔,名稱為:株山瞭望塔;描述為建于2009年,護(hù)林員編號(hào)0507056;位置的經(jīng)度為114.3652142,緯度為27.389245,海拔高度為14238米。
3.林業(yè)GIS系統(tǒng)開發(fā)與實(shí)現(xiàn)
3.1 GoogleEarth開發(fā)關(guān)鍵技術(shù)
基于GoogleEarth的二次開發(fā)通過調(diào)用GE類庫提供的API接口實(shí)現(xiàn)GE常用功能、添加業(yè)務(wù)邏輯、構(gòu)建應(yīng)用系統(tǒng),其開發(fā)原理與方式與基于COM傳統(tǒng)GIS開發(fā)方式類似。編程語言可選擇支持COM的可視化編程語言如VB(本文以VB語言開發(fā)為例進(jìn)行介紹)、VC、Delphi和.Net等。
GE包括11個(gè)類的類庫,如表1所示。在這11個(gè)類庫中IApplicationGE最為重要也是最大的一個(gè)類,它是GE的入口點(diǎn),提供了其他其他應(yīng)用程序訪問GE的接口,通過該類還可以其他類的接口。下面就IApplicationGE類如何加載GE及其他重要方法和屬性進(jìn)行介紹。
表1 GE COM API類庫的類
3.1.1引用類庫
安裝完GE后,在VB的“工程”菜單中選擇“引用”,在引用界面中選擇“GoogleEarth1.0TypeLibrary”。
3.1.2 GE的加載
加載過程中需要添加一個(gè)Picture控件(PictureGE)作為容器來顯示和操作GE。關(guān)鍵代碼如下:
Dim AppGE as ApplicationGE
Dim HandleGE as Long
Set AppGE=CreateObject(“GoogleEarth.ApplicationGE”)‘加載GE
HandleGE=AppGE.GetRenderHwnd‘獲取地圖窗口句柄
SetParent HandleGE,PictureGE.hWnd‘將地圖窗口句柄傳給操作主窗口句柄
3.1.3其他重要方法和屬性
IsOnline判斷是否連接到數(shù)據(jù)服務(wù)器,Login表示登入,Logout表示登出,GetCamera方法獲取當(dāng)前視圖,SetCameraParames方法設(shè)置當(dāng)前視圖;OpenKMLFile方法加載KML文件;SaveScreenShot方法保存當(dāng)前地圖視場(chǎng)范圍圖片。
3.2系統(tǒng)主要功能
多年來我國積極探索GIS技術(shù)在林業(yè)上的應(yīng)用,并研發(fā)出很多成熟的林業(yè)管理軟件。利用GE開發(fā)的林業(yè)GIS系統(tǒng)與傳統(tǒng)GIS系統(tǒng)具有如下優(yōu)點(diǎn):(1)GIS開發(fā)者不必關(guān)心影像和基礎(chǔ)地理數(shù)據(jù)的維護(hù);(2)GIS開發(fā)者不必考慮GIS軟件平臺(tái);(3)系統(tǒng)建設(shè)費(fèi)用低,相比傳統(tǒng)GIS系統(tǒng)開發(fā)周期短、硬件要求低、軟件不需要購買、數(shù)據(jù)購買維護(hù)費(fèi)用低;(4)用戶體驗(yàn)直觀豐富。
筆者使用VB語言開發(fā)出一個(gè)基于GE的林業(yè)GIS系統(tǒng),系統(tǒng)實(shí)現(xiàn)的主要功能包括(1)基礎(chǔ)GIS功能:包括地圖縮放、漫游、信息查詢統(tǒng)計(jì);(2)三維飛行、旋轉(zhuǎn)和定位等功能;(3)數(shù)據(jù)管理功能:包括數(shù)據(jù)投影轉(zhuǎn)換、KML文件生成、KML數(shù)據(jù)編輯等功能;(4)森林資源管理功能:包括二類資源調(diào)查、公益林、林地、集體林權(quán)制度改革宗地和古樹名木等數(shù)據(jù)的管理;(5)森林火災(zāi)輔助決策功能:包括火點(diǎn)經(jīng)緯度定位、地名定位和撲救路線制定等功能。
4.結(jié)論
本文探討了GE開發(fā)技術(shù),并對(duì)GE開發(fā)的關(guān)鍵技術(shù)和KML語言進(jìn)行了詳細(xì)的闡述,并基于VB語言開發(fā)出一個(gè)基于GE的林業(yè)GIS系統(tǒng)。系統(tǒng)既能免費(fèi)共享GE的遙感影像,又能將各類林業(yè)專題數(shù)據(jù)加入系統(tǒng),使得系統(tǒng)能以動(dòng)態(tài)的、直觀的方式表現(xiàn)各類林業(yè)專題數(shù)據(jù)局,同時(shí)本文為林業(yè)GIS系統(tǒng)的開發(fā)提供了一種新的思路和方法。隨著軟硬件的快速發(fā)展和GE的不斷進(jìn)步,GE在林業(yè)及其他領(lǐng)域的應(yīng)用必將更加成熟和廣泛。
【參考文獻(xiàn)】
[1]馬謙.智慧地圖:Google Earth/Maps/KML核心開發(fā)技術(shù)揭秘[M].北京:電子工業(yè)出版社,2010.
[2]漆明生,徐加清.基于KML的地理數(shù)據(jù)表示[J].四川林勘設(shè)計(jì).2008(3):77-80.
[3]張志樸,金波,王玉濤.Google Earth“數(shù)字林火”的大眾網(wǎng)絡(luò)平臺(tái)[J].中國林業(yè),2006,10:44-45.