張 倩,孫 玉,潘 蕓,左世祥,張曉鋒,李志軍,陳建華
(1.阿壩州自然資源與科技信息研究所,四川 汶川 624000;2.成都理工大學 地球物理學院,成都 610059;3.成都理工大學 地球科學學院,成都 610059)
隨著互聯網技術的快速發展,空間地理信息在各行各業中變得越來越重要[1]。由于地理信息滲透領域廣泛,當面對空間信息化日新月異變化時,傳統地理信息系統(Geographic Information System,GIS)搭建方式逐漸突顯出一些制約因素,主要有以下幾個方面。①平臺建設周期長。傳統開發模式從了解需求到搭建系統框架再到編寫代碼,開發時間長、效率低。②代碼復用率低。對于一些簡單的適用于所有場景的基礎地理信息功能未作封裝,使得后續系統存在重復建設的情況,導致代碼復用率低。③系統維護困難。過多的冗余代碼導致系統維護困難,不可預知的開發風險上升。④對開發人員隊伍素質要求高,開發成本高。當團隊核心開發人員崗位變更時,開發風險將放大,嚴重制約著項目的健康發展。
地理信息系統是一門交叉學科也是一個技術系統,其涉及地圖學、地理學和計算機科學等多種學科。同時,也是以地理信息數據為支撐,地理算法模型為輔助工具進行數據分析,為地理研究、地理決策提供幫助的計算機系統。目前GIS在室內定位[2]、車載導航[3]、路徑規劃[4]、城市建設[5]、地下管道維護[6]、交通管理[7]和環境保護[8]等領域被廣泛應用,有較好應用前景和應用價值。二維地理信息系統是在二維平面上進行地理信息處理和空間分析的技術系統,經過多年的發展,其強大的地理信息處理和空間分析能力已得到充分挖掘和應用。
網頁地理信息系統(Web Geographic Information System,WebGIS)是互聯網技術與地理信息技術相融合的產物,是傳統地理信息系統在網絡上的延伸和發展[9]。WebGIS基于B/S(Browser/Server,瀏覽器/服務器)模式,客戶端與后臺服務依托網絡進行數據傳輸。WebGIS平臺與傳統GIS軟件相比界面美觀、使用便捷,有助于地理空間數據管理、分析[10]。由于WebGIS是GIS在網絡上的延伸和發展,所以其應用領域相較于傳統GIS更加廣泛,是大多數GIS應用場景的首選解決方案[11]。WebGIS以二維平面呈現方式,多使用開放圖層(OpenLayers)等開源庫設計實現,有著豐富的地理信息處理和空間分析功能,在監控預警[12]、國土規劃[13]和城市管理[14]等領域得到廣泛應用。
鑒于此,本文基于WebGIS技術設計實現了二維地理信息服務子系統。以此為基礎進行地理信息平臺搭建能夠降低項目風險,縮短開發周期,提升代碼復用率,節省項目維護更新時耗費的時間和經濟成本,幫助開發人員將更多的時間投入到地理信息功能拓展研究中。
空間服務有2類,一為提供空間分析功能的空間服務,二為提供空間數據支持的空間服務。第一類空間服務由基本的Web服務器提供,主要負責通用空間分析功能的業務邏輯處理和空間數據庫的增刪改查,多用于具體空間分析功能,如緩沖區分析等。第二類空間服務由空間服務器提供,主要負責處理客戶端讀取地理數據的請求[15],多用于二維地理場景構建。本系統基于開源的地理服務器(GeoServer)搭建空間服務,負責各種地理數據的發布與切片。
二維地理信息服務子系統依托二維地理場景的構建,能夠對地理信息進行可視化展示。但是僅依靠矢量圖層來構建二維場景是不夠的,為了得到更真實的場景體驗還需結合影像圖來進行展示。OpenLayers是一個輕量級的開源JavaScript框架[16],提供了許多可操作的接口,可為Web客戶端提供基礎的地圖數據展示和地圖操作功能,具有擴展性強的特點。在地圖操作方面可幫助開發者實現圖層縮放、漫游及選取要素點、線和面等基本的操作功能。本文利用OpenLayers對二維地理場景進行構建,其總體流程如下。
(1)創建OpenLayers類,并構建實例化方法獲取虛擬地圖對象Map。
(2)設置全局變量儲存圖層指定的服務器端URL地址。
(3)實例化矢量圖層(VectorLayer)對象,并將圖層地址賦值給VectorLayer對象下的VectorSource屬性以指定圖層數據的來源。OpenLayers同時支持多種數據格式和Open GIS協會制定的網絡對象服務(WMS)、網絡要素服務(WFS)和網絡地圖切片服務(WMTS)等網絡規范,因此可對遠程空間服務發起請求[17],并對請求回來的對象(json)數據或圖片(png)數據進行數據解析和渲染,渲染時可以特定樣式渲染到地圖場景中。在請求和渲染過程中,為避免一次性請求全部數據導致瀏覽器卡頓,限制了數據的請求范圍為當前視圖范圍。
系統結構通常歸納為3個層次:表現層、業務層和數據層。表現層一般作為人機交互的接口而存在,即基于B/S模式的Web瀏覽器和基于客戶端/服務器(C/S)模式的應用客戶端。業務層接收業務請求,進行業務處理,包括對數據庫的處理及對業務邏輯的封裝。業務需求通常是復雜特殊的,因此業務層是3層結構中最具有特殊性和靈活性的1層。數據層完成數據的安全存儲。3者間的數據傳輸通過網絡請求進行,整體結構如圖1所示。

圖1 系統設計圖
WebGIS二維地理信息服務子系統采用面向對象的方式編寫。面向對象編程具有封裝性、繼承性及多態性特點,可滿足模塊功能的需求。為了讓子系統適用于多行業地理信息平臺建設,于是對部分通用GIS功能進行了封裝實現,主要有4大模塊。地理數據展示模塊:對矢量地理數據、柵格地理數據進行展示;場景設置模塊:對二維場景中的地理圖層范圍、縮放層級進行設置及對場景中的控件顯示與否進行控制;空間計算模塊:對二維場景中的空間距離、面積進行測量及對要素進行緩沖區分析;基礎功能模塊:該模塊包括圖形繪制模塊、坐標定位模塊、軌跡漫游模塊和動態信息展示模塊等功能模塊。各個功能模塊以接口的方式對外提供相應服務保證了靈活性,開發人員可根據自身項目需求設置不同參數自定義功能。模塊間的功能調用也可作為服務提供方式,保證了系統的高內聚低耦合,提高系統的容錯性,降低開發風險。
2.2.1 地理數據展示模塊
地理數據展示模塊包括對矢量數據、柵格數據及矢量圖形要素進行展示。客戶端以指定網絡規范向GeoServer空間服務器請求已切片的地理空間數據并以特定樣式渲染到地圖場景中從而完成地理數據展示(如圖2所示)。

圖2 矢量圖層
2.2.2 空間計算模塊
空間計算模塊部分包括在二維場景中對空間距離、空間面積的測量(如圖3所示)及對要素進行緩沖區分析(如圖4所示)。該模塊功能常用于對地理信息做空間分析。其中緩沖區分析應用范圍廣泛,一般用于分析矢量實體對周圍的影響。例如分析工廠排放廢水廢氣所影響的空間范圍。

圖3 計算測量

圖4 緩沖區分析
2.2.3 圖形繪制模塊
圖形繪制模塊中繪制方式分為手繪、非手繪2種,繪制模塊留有可供開發者自定義的接口。當開始繪圖時,開發人員可根據自身項目需求設置對應參數對圖形要素的樣式、屬性進行修改。繪圖結束時,圖形要素的坐標、樣式等數據將自動返回給用戶,便于用戶進行下一步工作(如圖5所示)。

圖5 圖形繪制
2.2.4 軌跡漫游模塊
軌跡漫游模塊根據用戶傳入的經緯度坐標數組創建軌跡線,再以此進行漫游。漫游開始前,用戶可自定義漫游速度、漫游層級、漫游軌跡樣式和漫游要素樣式。漫游過程中,用戶可自主調整播放視角和選擇是否進行重播(如圖6所示)。

圖6 軌跡漫游
2.2.5 信息展示模塊
信息展示模塊可對二維地理場景中的點、線和面要素以彈框的方式進行信息展示,展示內容包括基礎地理信息和用戶自定義信息,且彈框樣式可由用戶自行定義,包括彈框顏色、彈框寬度、彈框高度和字體顏色(如圖7所示)。

圖7 信息展示
2.2.6 坐標定位模塊
坐標定位模塊可直接定位至用戶自定義的任意坐標點,且定位時的地圖層級及是否在中心顯示該坐標點可由用戶自行選擇(如圖8所示)。

圖8 坐標定位
WebGIS二維地理信息服務子系統成功構建后,基于該子系統快速搭建的阿壩州牦牛智慧牧場管理系統正在投入使用(如圖9所示)。管理者利用阿壩州牦牛智慧牧場管理平臺對牦牛進行管理監控,幫助牧企與牧民省時、省力、高效及方便地進行牦牛養殖,平臺在實際應用中取得了良好效果。

圖9 阿壩州智慧牧場牦牛管理平臺
本文基于WebGIS設計實現了二維地理信息服務子系統,子系統提供了空間計算、地理數據展示、圖形繪制、坐標定位和軌跡漫游等基礎功能模塊為快速搭建地理信息平臺提供了技術支持。系統在應用中表現如下優勢。
(1)為開發人員提供通用WebGIS服務。二維地理信息服務子系統提供了地圖基本操作、空間信息展示、地圖標繪和空間計算等GIS功能。
(2)縮短平臺建設周期,降低開發成本。WebGIS二維地理信息服務子系統集成了地理信息平臺的通用功能,開發人員進行地理信息平臺建設時無需從頭建設,可根據自身項目需求引入相關功能模塊避免了代碼重復建設的問題,提高了開發人員的工作效率。
(3)提升了代碼復用率。系統實現了可供開發者拓展的接口,同時提供了封裝好的可直接調用的功能模塊接口,開發人員可自定義引入功能模塊,且子系統連接的GIS服務器地址可通過外部配置文件進行修改,保證了系統的靈活性、適配性。綜上所述,二維地理信息服務子系統有助于快速搭建地理信息平臺在GIS建設中有一定的推廣價值。