曹一冰,華一新,文志成,姜 波
(1.信息工程大學 地理空間信息學院,河南 鄭州 450052;2.61243部隊,甘肅 蘭州 730020;3.61175部隊,江蘇 南京 210049)
基于Google Map API的國界信息發布系統研究
曹一冰1,華一新1,文志成2,姜 波3
(1.信息工程大學 地理空間信息學院,河南 鄭州 450052;2.61243部隊,甘肅 蘭州 730020;3.61175部隊,江蘇 南京 210049)
邊界工作是我國外交工作中一項長期而重要的任務,如何實現周邊事務的快速標繪、實時共享和制圖輸出,對于政府決策者以及外交工作人員具有重要意義。然而目前的國界信息系統大多存在地理空間數據更新工作繁重、缺乏實時標注工具和地理事件難以共享等問題,已嚴重制約了邊界工作的順利開展。地理信息技術的進步與發展為解決上述問題提供了可能。文中采用四層B/S體系結構,在Google地圖服務支持下,基于ASP.NET+C#網頁開發技術和Ajax技術設計并實現了國界信息發布系統。為政府決策者及外交工作人員實時標注和共享周邊信息提供輔助決策支持。實踐證明,系統具有良好的可用性和較強的實時性。
Google Map API;國界信息;標注;B/S;Ajax;決策支持
隨著我國經濟、社會的快速發展,周邊事務以及外交活動日益增多,亟需一種既能表達周邊位置信息又能反映周邊態勢變化的信息系統的出現。計算機技術水平的快速提高極大地推動了地理信息服務理論、技術與方法的發展[1],使應用地理信息服務解決國界周邊事務標繪、表達與發布成為可能。地理信息服務已從早期以地圖為載體的信息傳遞方式發展到建立在計算機技術、網絡技術、空間技術、通訊技術以及地理信息技術等基礎上的現代地理信息服務模式[2-5]。
傳統的邊界地理信息系統由于使用的是C/S結構,不僅適用范圍小,還需要同時考慮數據和平臺問題。開發時即要購買GIS公司的GIS平臺產品又要找地圖供應商購買地圖產品,費用開銷很大,同時存在數據更新工作繁重、缺乏實時標注工具以及多用戶地理事件難以共享等問題,極大地制約了邊界工作的順利開展。網絡電子地圖服務為解決上述問題提供了一種新的途徑。目前,各大網絡電子地圖服務供應商都提供了免費的數據和平臺,發布了相關數據接口API,使用非常方便,需要的就是一些開發和集成,使開發者可以快速地將地圖嵌入到網站中,并借助地圖數據為用戶提供位置服務。同時允許開發者利用JavaScript腳本語言進行應用、開發和擴展以添加用戶的特殊需求。當然,這些數據和平臺都是免費的,任何非營利性網站均可使用[6]。
目前常見的電子地圖服務有:Google Map;Yahoo!Map;Microsoft Virtual Earth;百度地圖;天地圖等。本文通過對以上電子地圖服務平臺進行分析,并考慮到國界信息發布系統的特殊需求,認為無論在衛星影像的清晰度、API的完整性和地圖的覆蓋范圍等方面,Google Map都是目前最好、最完整的。因此,本文采用Google Map實現了周邊事務空間信息標繪與表達、熱點信息管理與維護、多用戶標注信息共享等功能。最終為邊界工作者提供簡單易用、實時高效的在線地圖標注與共享工具。
1.1 國界信息
國界信息按其內容分主要包括:國界線的基本情況、相關邊界口岸的設置情況、國界線周邊重點地物信息、未定國界的雙方主張線信息、爭議區信息和周邊突發地理事件等(如地質災害引起的周邊地貌變動、邊民沖突、人為事故等);按其標注類型又可分為點狀標注、線狀標注和面狀標注。最終每一條國界信息的幾何數據通過標注類型、位置坐標和標注樣式存儲在tb_plots數據表中,屬性數據通過新聞網頁的形式存儲在tb_news數據表中。
1.2 Google Map API
Google Map是Google公司向全球提供的地圖服務,包括地標、線條、形狀等信息,提供矢量地圖、衛星照片、地形圖等3種視圖,于2005年在谷歌博客上首次公布,并逐漸將覆蓋范圍擴大至全球[7],它是一款基于瀏覽器的免費在線地圖工具,其廣泛使用對互聯網及GIS領域產生了重大影響。Google Map API是谷歌地圖的二次開發接口,目前更新至V3版本,開發者可以方便地將谷歌地圖數據嵌入到自己的網站中實現個性化應用,添加地標、線條、形狀目標或者響應用戶的單擊事件彈出信息窗口。它提供了兩種不同形式的API:Google Map Java Script API和Google Maps API for Flash,本文使用的是Google Map JavaScript API V2。
根據其特性可以將Google Map API分為兩個部分:顯示特性,包含的對象有GMap2,GPoint,GIcon和GLatLng;其它特性,包括GControl,GMapPane,GMapType和GOverlay。開發者可以使用它們創建自己的控件、標注和地圖類型。以下是Google Map API中常見的對象[8]:
1)GMap2:Google Map API的核心類,主要用來創建地圖控件和控制地圖的基本行為。
2)GControl:它由一組對象組成,包括GLargeMapControl,GMapTypeControl等。
3)GMaker:主要用來指示位置和顯示信息。
4)GInfoWindow:使用文本或html顯示彈出信息。
5)GPolyline,GPolygon:分別用來在地圖上標注線條和形狀目標。
1.3 ASP.NET
ASP.NET是微軟在.NET Framework框架中提供的用于開發Web應用程序的類庫,主要用來創建動態網站、網絡應用程序和網絡服務,是一種使嵌入網頁中的腳本可由因特網服務器執行的服務器端腳本技術,ASP.NET是ASP技術的后繼者,允許開發者使用任何支持.NET的語言編寫ASP.NET代碼[9]。使用它可以方便在客戶端和服務器端傳送數據,是一種構建Web-GIS的常用技術。
1.4 AJAX
AJAX即Asynchronous JavaScript and XML,指的是一套綜合了多項技術的瀏覽器端網頁開發技術[10]。
傳統的Web應用允許用戶端填寫表單,當提交表單時就向Web服務器發送一個請求。服務器接收并處理傳來的表單,然后返回一個新的網頁,但這種做法浪費了許多帶寬,因為在前后兩個頁面中的大部分HTML代碼往往是相同的。由于每次應用都需要向服務器發送請求,應用的響應時間依賴于服務器,這就導致了用戶界面的響應比本機程序慢得多。
與此不同,AJAX可以僅向服務器發送并取回必須的數據,它使用SOAP或其它一些基于XML的頁面服務接口,并在客戶端采用JavaScript處理來自服務器的回應。因此在服務器和瀏覽器之間交換的數據大量減少,提高了服務器的響應速度。同時,很多的處理工作可以在發出請求的客戶端機器上完成,因此Web服務器的負荷也減少了,能夠使Web應用程序更小、更快、更友好。
系統體系結構如圖1所示。系統使用B/S四層體系結構,每一層在功能上都是獨立的,任何一層的更改不會影響其它層的功能,極大地提高了系統的可擴展性[11]。系統從下到上分為數據存儲層、數據訪問層、業務邏輯層和表示層。

圖1 系統體系結構圖
數據存儲層(Data Storage Layer):主要用來管理數據,執行用戶的數據查詢、修改、更新和地圖服務。包括存儲于SQL Server中的用戶標注數據、新聞數據、用戶數據(統稱為國界信息數據)和存儲于Google地圖服務器的基礎地理數據。
數據訪問層(Data Access Layer):提供訪問國界信息數據和Google地圖數據的統一接口,介于數據存儲層和業務邏輯層之間。
業務邏輯層(Business Logic Layer):在數據訪問層的基礎上提供四大類服務,分別是標注服務、新聞服務、用戶管理服務和地圖服務。它響應來自瀏覽器的請求,并將其發送到數據訪問層,通過統一的數據訪問接口將數據轉換為數據庫能夠接收的形式(例如SQL),然后將返回的數據經過邏輯處理轉換為HTML和其它的腳本形式給客戶端。對于空間數據的操作(顯示、縮放等),主要通過使用Google Map API來訪問Google地圖服務器上的瓦片數據。
表示層(The Presentation Layer):位于客戶端瀏覽器,用戶使用瀏覽器與系統交互和響應,向服務器發送數據請求并將返回的結果進行顯示,表現為國界信息發布系統平臺。
系統的詳細設計主要包括數據庫的設計和主要功能模塊的設計。
3.1 數據庫的設計與實現
系統采用SQL Server數據庫,主要用來存儲用戶數據、標注數據、新聞數據等國界信息數據。當用戶標注一個點狀、線狀或面狀目標時,系統通過Google Map地圖服務獲取標注對象的坐標信息(一個或多個坐標點),然后將其和用戶輸入的標注標題、描述信息、添加的新聞信息、設置的標注樣式添加到tb_plots表中;將新聞標題、新聞內容存儲在tb_news表中,標注和新聞通過唯一的GUID關聯;當某一用戶想要查看其他用戶的標注信息時,可以關注其他用戶,這樣就可以實現地理事件的實時共享,用戶的基本信息存儲在tb_users表中,tb_users和tb_plots通過用戶名關聯。系統啟動時數據庫國界信息數據通過經緯度與Google Map空間數據關聯。部分數據庫表結構見表1~表3。

表1 用戶表tb_users結構圖

表2 標注表tb_plots結構圖

表3 新聞表tb_news結構圖
3.2 主要功能模塊的設計與實現
系統按其功能主要分為兩個模塊,每一模塊都包含若干子模塊,模塊結構如圖2所示。

圖2 系統主要功能模塊結構
3.2.1 注冊與登錄模塊
注冊一個新的用戶后,會在tb_users表中增加一條記錄,此時tb_users中沒有任何關注信息(Attention字段為空);tb_plots中沒有任何標注信息(沒有此用戶的標注);tb_news中沒有與標注關聯的新聞信息。
3.2.2 標注顯示模塊
用戶的標注信息在顯示時是以圖層的形式進行組織的,每個用戶為一個圖層。當用戶標注完成其所關心的所有國界信息后,標注信息會增加至用戶圖層中(圖3所示為“三沙市”用戶標注的是南海區域的國界信息)。用戶可以在列表中控制某一圖層或某一標注的顯示狀態,單擊左側列表中的某一標注時,地圖會定位到該標注點,并顯示標注的描述信息和新聞鏈接。點擊氣泡框中的“瀏覽新聞”鏈接可以查看與該標注關聯的新聞數據,如圖4所示。

圖3 標注顯示功能

圖4 標注新聞顯示
3.2.3 用戶關注模塊
通過添加關注用戶可以將其他用戶的標注信息顯示在“好友列表”中,相當于添加了一個用戶關注圖層,進而實現多用戶的實時在線地理信息共享,如圖5所示。

圖5 用戶關注功能
3.2.4 標注查詢模塊
系統提供“站內搜索”、“Google地圖搜索”、“全部”3種搜索模式。“站內搜索”模式通過關鍵字匹配搜索所有存儲在數據庫中的標注信息;“Google地圖搜索”模式查詢Google地圖服務器中的標注信息;“全部”模式查詢所有的標注信息,同時可以對搜索結果瀏覽和顯示,如圖6所示。

圖6 標注查詢功能
3.2.5 用戶標注模塊
選擇標注的目標類型(點、線、面),通過鼠標交互在地圖上標注國界信息,設置標注的標題、描述信息、樣式并添加與地理位置相關的屬性數據即新聞信息(編輯新聞網頁),完成標注的添加,如圖7所示。

圖7 用戶標注功能
3.2.6 后臺模塊
用來管理用戶、新聞和標注信息,實現上述信息的刪、改、查以及一些邏輯的處理,如當刪除某一用戶時,需要同時刪除其標注信息以及與標注相關的新聞信息。
國界信息發布系統的設計和應用改變了傳統邊界地理信息系統組織和管理周邊事務數據的方式。由于采用公眾地理信息服務平臺Google Map,使開發者不用考慮數據更新問題,降低了系統開發和維護成本。系統提供了豐富的標注工具,使用戶可以按照需求標注不同的地理事件,同時標注信息的圖層化組織有利于不同用戶實時在線共享地理事件,較好地滿足了政府決策者和邊界工作者的業務需求。實踐證明,系統具有良好的可用性和較強的實時性。
[1]梁建國,徐占華,夏君.面向服務的空間信息共享機制設計與實現[J].測繪通報,2011(2):56-58.
[2]柳佳佳,葛文.基于本體語義的地理信息服務發現[J].測繪工程,2013,22(6):9-13.
[3]徐永龍,李斌,郭海朋,等.數據字典驅動的地質數據采集系統設計與開發[J].測繪工程,2014,23(10):41-44.
[4]繆鹍,田家凱,唐軍軍,等.公(鐵)路線調數據采集的GIS系統設計與實現[J].測繪工程,2014,23(7):68-71.
[5]郭范春.基礎地理信息數據庫管理系統的研建[J].測繪工程,2013,22(3):80-82.
[6]丁毅,彭宏.Google Maps API在WebGIS定位中的應用研究[J].杭州電子科技大學學報,2012,32(5):96-99.
[7]PENG FUQUAN,SU JIAN,WANG ZEBING.A City Modeling and Simulation Platform Based on Google map API[C].2010 International Conference on Remote Sensing(ICRS),2010,176-179.
[8]Google Map API[EB/OL].http://code.google.com/intl/en/apis/maps.
[9]R ANDERSON,B FRMCIS.ASP.NET高級編程[M].王毅,楊浩,譯.北京:清華大學出版社,2002:2-8.
[10]R ASLESON,N SCHUTTA.Ajax基礎教程[M].金靈,譯.北京:人民郵電出版社,2006:71-85.
[11]王廠.基于Google Map API的郵政運輸調度系統的分析與設計[D].濟南:山東大學,2010.
[責任編輯:劉文霞]
Research of borders information distribution system based on Google Map API
CAO Yi-bing1,HUA Yi-xin1,WEN Zhi-cheng2,JIANG Bo3
(1.Institute of Geo-Spatial Information,Information Engineering University,Zhengzhou 450052, China;2.Troops 61243,Lanzhou 730020, China;3.Troops 61175,Nanjing 210049,China)
Border work is a long-term and important task in China’s diplomatic work.How to implement rapid plotting,real-time sharing and mapping surrounding affairs has taken great significance for government policy-makers and diplomatic staff.However,the existing boundary information systems have some problems: of which geospatial data update is heavily workload,plotting tools are in a state of serious lack and geographic events are difficult to share,which phenomenon has seriously hampered the smooth development of the border task.The development of GIS technology, especially the development of Web GIS offers the possibility to solve the above problems. Four layers of B/S architecture are adopted with the support of Google maps service,design and implement the borders information distribution system based on the web development technology of ASP.NET,C#,Ajax.The system can provide a decision support for the government policy-makers as well as diplomatic staff’s real-time plotting and sharing of surrounding information.The practice has proved that the system has good usability and strong real-time.
Google Map API;border information;Plot;B/S;Ajax;decision support
2014-01-16;補充更新日期:2014-11-01
“十二五”國家科技支撐計劃資助項目(2012BAK12B02)
曹一冰(1986-),男,博士研究生.
P208
:A
:1006-7949(2014)12-0071-05