韓紅芳 方莉娟
摘要:DEM-數(shù)字高程模型在地理、測繪等行業(yè)有著廣泛的應(yīng)用,但DEM數(shù)據(jù)的獲取按傳統(tǒng)方法提取測繪,花費(fèi)較大人力物力。而Google Earth軟件(以下簡稱GE)共享了經(jīng)緯度和高程信息,并提供了二次開發(fā)的API接口,充分利用GE提供的數(shù)據(jù),是一個很有實(shí)用研究價值的課題。文章利用Google Earth COM API進(jìn)行二次開發(fā),實(shí)現(xiàn)了快速地從GE中提取任意地區(qū)和范圍的高程信息。GE的高程有較高的精度,在較多實(shí)際應(yīng)用中有很大作用。
關(guān)鍵詞:Google Earth;高程信息;二次開發(fā);API
中圖分類號:P285 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-2374(2013)10-0064-02
1 概述
數(shù)字高程模型(Digital Elevation Model),簡稱DEM。它是用一組有序數(shù)值陣列形式表示地面高程的一種實(shí)體地面模型,是數(shù)字地形模型(Digital Terrain Model,簡稱DTM)的一個分支,其他各種地形特征值均可由此派生。由于DEM描述的是地面高程信息,它在測繪、水文、氣象、地貌、地質(zhì)、土壤、工程建設(shè)、通訊、氣象、軍事等國民經(jīng)濟(jì)和國防建設(shè)以及人文和自然科學(xué)領(lǐng)域有著廣泛的應(yīng)用。
隨著測繪技術(shù)的發(fā)展,人們獲取DEM的手段進(jìn)行不斷的革新。近年,隨著以航天技術(shù)、傳感器技術(shù)、計算機(jī)技術(shù)為代表的對地觀測技術(shù)得到了飛速的發(fā)展,關(guān)于地形數(shù)據(jù)獲取的研究也進(jìn)入了一個新的階段。充分利用現(xiàn)在高科技手段獲取的DEM數(shù)據(jù),減少重復(fù)工作,是一個值得研究的方向。
GE共享了受許可的航空圖片、衛(wèi)星圖片及經(jīng)緯度高程信息,數(shù)據(jù)涵蓋全球。GE可查看全球每個角落的經(jīng)緯度、高程、衛(wèi)星影像等各種信息。軟件更是提供了二次開發(fā)的接口Google Earth COM API,可以對其進(jìn)行簡單的控制和信息的獲取。
本文基于Google Earth COM API進(jìn)行二次開發(fā),實(shí)現(xiàn)了高程信息的提取,并簡單介紹解決高程提取次數(shù)限制問題。
2 Google Earth簡介及開發(fā)接口介紹
2.1 軟件簡介
GE是一款Google公司開發(fā)的虛擬地球儀軟件,它把衛(wèi)星照片、航空照相和GIS布置在一個地球的三維模型上。軟件功能強(qiáng)大,操作界面簡單直觀,而且其提供的地理信息完全免費(fèi)。GE可從球面到平面、從平面到立面進(jìn)行多模式、多角度顯示;可任意旋轉(zhuǎn)、放大、縮小、漫游,可快捷地查詢、導(dǎo)航、定位;既可宏觀,也可以極致微觀地對地球進(jìn)行觀察和研究;以圖像方式直觀顯示各地區(qū)的真實(shí)地貌。
2.2 Google Earth的二次開發(fā)
GE開發(fā)了對其進(jìn)行二次開發(fā)的API,將GE的功能以COM組件形式,以一種支持COM開發(fā)環(huán)境的編程語言來構(gòu)建具體的應(yīng)用系統(tǒng)。計算機(jī)中需安裝GE軟件,并引用GE提供的API。并且運(yùn)行環(huán)境必須在互聯(lián)網(wǎng)上,因?yàn)樗枰{(diào)用在線的影像及數(shù)據(jù)庫。
3 Google Earth高程提取工具開發(fā)
本文采用VB.NET進(jìn)行開發(fā),其中用到IApplicationGE主類,基本流程是先使用IApplicationGE類中的ViewExtents函數(shù)去定義獲取范圍,用SetCameraParams函數(shù)去設(shè)置可視范圍,如果定義范圍較大的話可以切分為多個可視范圍,使用GetPointOnTerrainFromScreenCoords函數(shù)獲取高程信息。
獲取高程區(qū)域的方法有兩種:一種方法是自定義設(shè)置最大經(jīng)緯度和最小經(jīng)緯度的信息或者一個矩形范圍的高程信息,另一種方法是直接在GE界面中去按地圖區(qū)域去獲取左下和右上角坐標(biāo)。實(shí)現(xiàn)方法如下:
(1)獲取左下和右上角這個按鈕就用到了API中IApplicationGE類的ViewExtents函數(shù)。
(2)獲取高程的主要函數(shù)還是GetPointOnTerrainFromScreenCoords這個函數(shù),下面簡單介紹一下這個函數(shù),和ViewExtents函數(shù)一樣,這個函數(shù)也是在IApplicationGE類中,所以使用前也需先定義好,函數(shù)用法:
GetPointOnTerrainFromScreenCoords(screen_xAs Double,screen_y As Double)As EARTHLib.PointOnTerrainGE
(3)由于函數(shù)中運(yùn)用到屏幕坐標(biāo),從屏幕坐標(biāo)分布圖中可以看出中心點(diǎn)坐標(biāo)為(0,0),要得到屏幕中心點(diǎn)的高程信息:
Public con As EARTHLib.PointOnTerrainGE
ge.GetPointOnTerrainFromScreenCoords(0,0)
con.Altitude為相應(yīng)屏幕坐標(biāo)的高程信息
con.Longitude、con.Latitud分別為相應(yīng)屏幕坐標(biāo)的經(jīng)緯度信息
我們可以把一屏劃分成很多小網(wǎng)格,例如屏幕的(0.1,0.1)坐標(biāo)處的高程信息,只需代入不同的屏幕坐標(biāo)就可得到對應(yīng)點(diǎn)的高程信息。由于它們的范圍在-1和1之間,取得間隔決定了一屏幕采點(diǎn)的個數(shù),如間隔為0.1,那采樣個數(shù)為{[1-(-1)]/0.1}×{[1-(-1)]/0.1}=400及每屏幕采集400個高程信息點(diǎn)。
但是如果提取范圍較大的時候可能這樣就無法達(dá)到要求,故還需使用IApplicationGE類中的另外一個函數(shù)SetCameraParams,這個函數(shù)可以對屏幕視點(diǎn)操控,可以幫助我們平移屏幕操作,并設(shè)置視點(diǎn)高度。當(dāng)提取范圍較大的時候我們可以把提取范圍分割成很多小塊,進(jìn)行分批提取。函數(shù)用法:
SetCameraParams(lat As Double,lon As Double,alt As Double,altMode As EARTHLib.AltitudeModeGE,Range As Double,Tilt As Double,Azimuth As Double,speed As Double)
函數(shù)可以按經(jīng)緯度和視點(diǎn)高度進(jìn)行平移屏幕操作。
結(jié)合上述方法可以進(jìn)行批量獲取高程信息點(diǎn),但是由于Google對API的調(diào)用次數(shù)做了限制,實(shí)際使用中發(fā)現(xiàn)獲取高程點(diǎn)的函數(shù)調(diào)用至5000次左右的時候速度會驟然變慢,不利于大范圍的提取,但是關(guān)閉GE應(yīng)用程序后再次開始獲取后會恢復(fù)正常。利用此點(diǎn)我們可以提取部分后做記錄,再次啟動應(yīng)用程序繼續(xù)獲取,可以順利地避免調(diào)用限制問題。
4 應(yīng)用分析
獲取到的高程點(diǎn)信息保存在文本中,我們可以通過Mapinfo或者其他軟件按其坐標(biāo)創(chuàng)建網(wǎng)點(diǎn)再對其進(jìn)行深入應(yīng)用。
5 注意的問題
(1)GE利用SRTM(Shuttle Radar Topography Mission)數(shù)據(jù)作為它的基本高程數(shù)據(jù)。SRTM數(shù)據(jù)主要是由美國太空總署(NASA)國防部國家測繪局(NIMA)聯(lián)合測量的,采樣了同軌干涉(InSAR)雷達(dá)立體測繪技術(shù)。SRTM數(shù)據(jù)每經(jīng)緯度方格提供一個文件,精度有1arc-second和3arc-seconds兩種,稱作SRTM1和SRTM3或者稱作30M和90M數(shù)據(jù)。
(2)GE采樣經(jīng)過處理后的1arc-second數(shù)據(jù),高程數(shù)據(jù)絕對誤差小于16M,相對誤差小于10M。
GE顯示的高程數(shù)值為WGS-84大地高程系統(tǒng),而不是通常使用的1956或1985黃海高程系統(tǒng)。
參考文獻(xiàn)
[1] 李志林,朱慶.數(shù)字高程模型[M].武漢:武漢測繪科技大學(xué)出版社,2000.
[2] 李德仁.攝影測量與遙感的現(xiàn)狀及發(fā)展趨勢[J].武漢:武漢測繪科技大學(xué)學(xué)報,2000,(1).
[3] 江寬,龔小鵬.GoogleAPI開發(fā)詳解:GoogleMaps與Google Earth雙劍合璧[M].北京:電子工業(yè)出版社,2008.
[4] 楊鑫,鄭新奇,趙璐,等.基于Google Earth的高程信息快速提取方法[J].中國科技論文在線,2008,(3).
(責(zé)任編輯:秦遜玉)