王瑞國 (神華地質勘查有限責任公司,北京102211)
Google地球是由Google公司于2005年6月正式發布的三維虛擬地球軟件[1]。Google地球對衛星影像,航拍影像進行處理整合,拼接貼合在三維地球模型的表面,對真實的地球地理信息進行展示[2]。Google地球包含海量、高精度的地理數據,并且具有高度的開放性,易于二次開發。因此Google地球既能滿足一般用戶足不出戶既可瀏覽世界的需求,又能為科研工作者提供強大的地理數據平臺,還可以與一些企業級用戶進行合作,訂制私有的Google地球應用[3]。
Google地球的衛星影像主要來自QuickBird、IKONOS、SPOTS等高清影像衛星,航拍部分主要來源于BlueSky公司、Sanborn公司。Google地球影像一般有1~3年的滯后,全球地貌影像有效分辨率至少為100m,通常分辨率為30m,視角海拔高度為15 km左右。大城市、著名風景區等熱門地點,影像分辨率可以高達0.5~1m,視角高度約為350 m~500 m。大部分高清影像集中在北美和歐洲[4]。
Google地球有兩種開發方式,一種是基于Google地球客戶端COM API的二次開發,一種是基于KML的二次開發。基于COM的二次開發,需要安裝Google地球,由第三方軟件通過引用Google地球COM API類庫對Google地球進行控制,如加載KML、控制視角、播放動畫等。而基于KML的二次開發,可以通過創建KML文件以精確定位地點、添加圖像疊加層并以全新方式展示豐富數據。可知,基于COM的二次開發主要是實現軟件之間的互相調用,而基于KML的方式,可以實現很多基于地理信息的應用,如可以使用KML標記家庭住址、安排和記錄行程,查看自然資源和趨勢的詳細繪圖,探索古今地點、人物和事件等。本節主要介紹基于KML的開發方式。
KML常用于地球瀏覽器中,例如Google地球、Google地圖等,它主要為顯示地理數據提供數據支撐。KML是由開放地理空間聯盟(Open Geospatial Consortium,Inc.,簡稱OGC)維護的國際標準[5]。

圖1 KML基本框架
KML使用包含嵌套的元素和屬性的結構(基于標記),并符合XML標準。如圖1所示KML的基本框架。需要說明的是線框中的元素是抽象元素,用于方便的描述多個相似屬性的元素,不可以直接在KML中使用。Feature抽象元素的各實元素實現地理信息的封裝與管理;NetworkLink元素可對本地或網絡的KML文件進行引用;Placemark元素用于描述地理對象的相關特征;Folder元素實現對地理對象的層次化管理;Document元素實現各類Feature元素、Style元素、Schema元素的封裝與管理;Overlay元素實現屏幕貼圖與地面貼圖功能。SubStyle元素主要用于對各地理要素的顯示樣式的定義。Geometry抽象元素定義了幾種基本的幾何圖形元素,提供了點、線、環、多邊形、三維模型等基本幾何圖形;還可以通過Multi-Geometry聚合不同形態的基本幾何圖形形成復合的幾何圖形從而定義復雜的幾何實體[6]。
將路點的坐標數據以路線的形式展示在Google地球上,通過實現這一應用,來對基于KML的二次開發進行實例說明。我們用Excel內置的VBA腳本語言,來實現將Excel中的路點坐標,自動生成可以在Google地球中顯示成路線的KML文件。在KML中路線用<LineString>元素創建,<LineString>元素下的<coordinates>元素用于描述組成路線的各個路點的地理坐標,將Excel中整理好的路點的地理坐標按正確的格式錄入到<coordinates>元素內,并將KML完整結構的代碼寫入文件中,最終生成可以顯示路線的*.kml格式的文件,在Google地球中打開生成的文件即可直觀的看到又路點連接成的路線。主要代碼如下:

用數據來對開發的應用進行驗證,將采集的路點坐標數據在Excel中整理好,如圖2所示。點擊“生成KML文件”按鈕,KML文件以“路徑”為文件名生成在桌面,打開生成的KML文件,即可在Google地球中看到效果,如圖3所示藍線既為生成的路線,可見此應用實現了預期效果。本例只做拋磚引玉之用,為其他開發者提供參考借鑒,基于KML的二次開發還可以實現許多其他基于地理信息的個性化應用。

圖2 數據整理

圖3 Google地球路線展示
Google地球可以讓普通人足不出戶,踏遍世界上的任何角落,并以其豐富的地理數據和易于二次開發的特性,為各個領域工作者提供了極好的地理數據平臺,使用者可以充分利用Google地球與自己的工作相結合,開發出實用的相關工具。
文章對Google地球的基本特性和二次開發技術進行了簡要介紹,并通過開發將路點的地理坐標以路線展示在Google地球的應用,對Google地球的開放性和二次開發的簡易性進行了實例說明,為大家提供一定的參考。