張薦銘,左小清,陳云波
(1.昆明理工大學 國土資源工程學院,云南 昆明650000;2.云南省昆明市規劃編制與信息中心,云南 昆明650500)
Google Earth是一個優秀的地圖平臺,數據資源極其豐富,不僅能夠提供優異的地圖傳輸功能,而且還提供免費的API,用戶只需加上業務代碼,即可構架一個滿足基本業務需求的行業地理信息系統[1-2]。Google Earth打破了傳統空間信息技術的思維定式,改變了人們了解和認識世界的方式[3]。它給地理信息產業最大的啟發,是其存儲于在線數據庫中的海量高分辨率遙感圖像,且能夠保存并轉換成其他常規格式的地圖文件,給很多領域提供幫助。
近年來,由于新能源的推廣使用,以天然氣為主要驅動力的新能源汽車已普遍開來,且年遞增率都在10%以上[4],在城市里的覆蓋率逐步增加。城市中,為這些車輛提供能源的主要場所就是天然氣加氣站。所以,能夠宏觀、高效、安全地管理天然氣加氣站,對于城市規劃發展、車輛使用者、出租車公司、公交車公司都具有頗為重要的意義。將Google Earth引入到天然氣加氣站管理的領域中,利用其提供的免費遙感影像,將加氣站信息疊加到遙感地圖上進行宏觀分析,為天然氣加氣站的管理提供一個切實可行的新方法。
采用Visual Studio 2010C#.NET 4.0為開發平臺,基于Google Earth開發組件,設計出一套實用性強、功能完善的天然氣加氣站管理系統。
利用C#開發語言,結合Google Earth開發組件,將Google Earth客戶端嵌入到程序中,調用Google Earth網絡數據庫中不同分辨率的影像地圖、顯示比例、功能部件等內容,實現在系統客戶端對Google Earth的基本操作。同時,系統與專門存儲加氣站信息的外部數據庫相連接,讓用戶采用GIS的方法管理加氣站,并能在Google Earth上瀏覽、管理、利用、修改天然氣加氣站的相關信息。
系統主要由基本功能模塊、站點信息管理功能模塊、GIS功能模塊、其他功能模塊組成,其中,站點信息管理功能模塊和GIS功能模塊是系統中最重要的兩個部分。站點信息管理功能模塊包括站點信息的瀏覽、添加、修改、刪除、篩選等操作,這些操作可基于Google Earth,也可以單獨完成。GIS功能模塊包括圖層管理、距離量算、緩沖區分析等內容,主要發揮協助加氣站建設規劃決策的作用。系統的成功研發將會為用戶提供一種天然氣加氣站信息的管理方式,讓使用者能夠用GIS的方法查詢并管理某一地域內的天然氣加氣站信息(包括站點屬性信息,可利用的文本、圖片和視頻文件等),并對這些信息做出合適的操作。除此之外,系統還附帶一些可用于輔助決策的功能選項,保證系統的完整性和穩定性,如圖1所示。

圖1 系統功能模塊
系統使用Visual Studio 2010C#為開發語言,引用 Google Earth1.0Type Library(GE主程序),將Google Earth視圖窗體句柄傳遞給主窗體內的geWebBrowser對象容器(geWebBrowser為客戶端中Google Earth的承載容器,對象類別為 Web-Browser),使Google Earth在系統運行初期就嵌入到程序中,并初始化界面。以下是通過C#語言載入GE窗體的關鍵代碼:


在GE中,地圖上所要處理的實體對象通常稱為地標,分為點、線、面、鏈接等多種類型,是用戶在Google Earth上操作的基本單位。KML全稱keyhole Markup Language,是一種由Google公司基于XML(可擴展標記語言)語法和文件格式開發的數據文件,可用來描述和保存各種地理數據,如點(Point)、線 (Linestring)、環 (LineRing)、多邊形(Polygon)、模型(Model)等[5]。通過 KML文件,在基于GE的虛擬環境中可以實現地圖瀏覽、路線查詢、商業和服務機構的空間和屬性查詢等功能[6-8]。
在本系統中,每個加氣站站點就是一個地標,所有站點的基本信息都被存儲在同一個數據庫中。地標文件的數據信息(網絡連接、文字、圖片、模型以及其他多媒體資料)首先存儲在外部數據庫中,在需要時被提取并利用KML語言制作成一個專門的圖層,再添加到內嵌于系統的Google Earth中。
空間分析能力是GIS系統中一項十分重要的任務和最具特色的功能,是基于地理目標的位置和形態特征的空間數據分析技術[9],可根據應用系統需求進行添加。對于加氣站站點的管理,以空間分析的角度而言,站點間距以及加氣站的影響范圍是系統最需要的數據。因此,系統需要加入距離量算和緩沖區分析兩種分析功能。
任何基于GE開發的系統,在功能的實現時基本都是利用了其中的某些屬性和方法,例如可以用IsInitialized判斷是否初始化成功,利用IsOnline判斷某點是否在連線上等等[10]。同樣,利用組件提供的getLatitude()和getLongitude()函數,可以在Google Earth上獲取任意兩個目標點point1和point2并提取出二者的經緯度(Google Earth中所獲取的經緯度數據均是WGS84坐標下的經緯度),從而直接繪制一條分別以point1和point2為起點和終點的直線,并利用point1.Distance(point2)函數計算出直線距離。
比起距離量算來說,緩沖區分析的實現稍顯復雜。Google Earth開發組件并未提供一個直接以一定半徑繪制緩沖區的方法,而是提供了一個可以構造環形元素的createLinearRing()函數,并且所構造的環形是由起點坐標與終點坐標相同的一系列的坐標對所組成的直線段連接起來的折線環。在構造折線環時,只需指定需要在環線上獲取坐標點的數目,系統會在收到指令后自動取得這些點位,并一一相連,最后利用setOuterBoundary()函數繪制邊界形成閉合的填充環形。實驗證明,當在利用createLinearRing()函數構造的環形邊上取得足夠多的點時,所繪制的圖形非常接近圓,且這種近似度能夠滿足用戶的使用要求。
空間屬性查詢對于每個GIS平臺來說,都是一個不可缺失的功能。在本系統中,每個地標代表一個站點,即一個空間實體,包括實體的空間信息、屬性信息和多媒體信息。空間信息是該站點的經緯度;屬性信息包括該站點所有基本情況,如站點名稱、所屬公司、站點規模等;多媒體信息則包括該站點文件夾下存放的各類文件,比如文本、圖片、視頻等。有針對地查詢加氣站的整體信息,就應該為系統添加一項查詢站點控件屬性信息的功能。
系統中設置了多個瀏覽信息的功能,但機理卻截然不同。Google Earth設置了稱為“氣泡(Bal-loon)”的小部件,是Google Earth客戶端默認用于顯示地標信息的功能部件。所有地標的屬性信息統一存儲在同一個數據庫中,只需指定好“氣泡”出現的事件,當事件被觸發后,對應加氣站的信息將會從數據庫內提取出來,存放在預先定義的變量中,再依次加入到“氣泡”中,在“氣泡”內查看。
系統中,站點的多媒體信息的查詢響應事件是在geWebBrowser.Kmlevent()事件中設置的,而多媒體文件則存放在各個加氣站文件夾下。當響應事件被觸發時,系統自動檢索對應文件夾下所有文件,并按不同文件格式進行分類(系統以圖片文件、視頻文件、文檔文件的常用文件形式為分類依據,將所有文件分為三類),在系統主界面瀏覽深層次內容。
實現系統最初的設計目標后,并取得昆明市市區內所有加氣站站點信息,驗證系統的可行性與功能完善性。圖2~圖5為系統運行時截圖。

圖2 系統工作界面

圖3 以麻園加氣站為例的站點信息瀏覽

圖4 量距

圖5 以麻園加氣站為例的緩沖區分析
圖2是系統加入昆明市加氣站站點信息后的工作界面。系統頂部是主要功能欄,包括圖層管理、點選屬性查詢、報表統計、搜索站點、添加站點、篩選站點等;左側是一個TabControl控件,Page1中用樹形列表呈現了所有加氣站,并區分類別,Page2則是對站點信息的添加、刪除、修改;右側為Google Earth的承載容器,也就是本系統的地圖顯示區,可對地圖進行平移、放大、縮小等操作,另外也是加氣站站點信息的瀏覽區域;底部為狀態欄,包括當前加載進度、版本型號、站點類別等。
圖3顯示的是以麻園加氣站為例的點選多媒體查詢功能。在地圖顯示區正中顯示的文檔即為上文所提到的“氣泡”,顯示站點的基本信息;左側為分類管理框,查看站點的多媒體文件。
圖4顯示的是測量麻園加氣站與金瓦加氣站之間的直線距離。圖5顯示的是以麻園加氣站為中心點,2 000m為半徑形成的緩沖區。通過這兩個功能,可知道加氣站之間的相互距離,以及加氣站一定程度的覆蓋范圍,為以后天然氣加氣站的規劃提供輔助信息。
Google Earth與其他地理信息平臺相比,最大的優勢在于其所提供的免費衛星影像,且針對不同地區采用不同分辨率,讓用戶節省用于購買基礎地圖的巨額費用,也是本系統選擇Google Earth api進行研發的關鍵因素。借助于本系統,用戶只需保持網絡的暢通,根據實地測繪人員所提供的數據,即可輕松自如地遠程、宏觀地瀏覽天然氣加氣站信息,管理相關數據,及時做出規劃決策。如若知道加氣站站點的具體位置,甚至不用任何外業工作,即可完成某些加氣站的管理工作,節省人力物力。
Google Earth api被應用到森林消防、土地管理、旅游景點管理、城市規劃等方面的案例已有不少,但與其他GIS二次開發平臺相比,被利用到大型項目的機會并不多,或者僅僅作為一個輔助部件存在,這主要是因為GE開發組件自身GIS功能的限制。基于Google Earth api所開發的程序大部分為小型系統,功能受限。若想要得到更加普遍的利用,Google Earth必須要增強自身的GIS分析能力,如提高免費版Google Earth衛星影像的更新頻率,增強Google Earth自身附帶的空間分析功能,支持多種傳統GIS數據格式等等。
[1]馬謙.智慧地圖:Google Earth\Maps KML核心開發技術揭曉[M].北京:電子工業出版社,2010:292.
[2]馬立廣,曹彥榮.Google Earth COM API及KML技術在旅游管理信息系統開發中的應用[J].地球信息科學學報,2010,12(6):828-834.
[3]苗放,葉成名,劉瑞,等.新一代數字地球平臺與“數字中國”技術體系構架探討[J].測繪科學,2007,32(6):157-158.
[4]孟欣.談我國天然氣汽車的發展[J].汽車工業研究,2010(8):10-12.
[5]漆明生,徐家清.基于KML的地理數據表示[J].四川林勘設計,2008(1):77-80.
[6]于冰,徐柱,劉國祥.Google Earth支持下校園真實感三維建模方法及應用[J].測繪工程,2010,19(1):61-64.
[7]林泉.Google Earth影像在地理國情普查中的補充使用[J].測繪與空間地理信息,2014,37(6):95-96.
[8]王增軍,韋江玲,王寧娜.Google Earth遙感影像在海籍調查與測量中的應用研究——以北部灣沿海為例[J].測繪與空間地理信息,2014,37(8):122-124.
[9]黎雯,周廷剛,張偉.GIS空間分析與模糊綜合評判在銀行ATM 網點選址中的應用[J].測繪科學,2008,33(1):229-231.
[10]Google Earth COM API Documentation[EB/OL].http://earth.google.com/comapi/,2005-06-30/2008-11-1.