徐 亮
(1.福建省基礎地理信息中心,福建 福州 350001)
一種通用地理信息采集平臺的設計與實現
徐 亮1
(1.福建省基礎地理信息中心,福建 福州 350001)
基于MongoDB數據庫,設計并實現了一種以元數據為界面驅動的,能快速構建各種業務數據結構的,能滿足空間數據管理﹑共享和發布的通用地理信息采集平臺。應用結果表明,該系統框架具有高效﹑通用﹑靈活可擴展等特點,能夠實現從數據采集到應用的一體化功能。
地理信息采集;通用;WebGIS;MongoDB

隨著我國經濟的高速增長,城市和基礎設施發生著日新月異的變化,據2006年一篇文獻中的估計,北京﹑上海這樣的大城市,每年有40%以上的地圖內容應得到更新,而傳統落后的測繪方式需0.5 a或1 a以上的時間[1],根本無法適應這種快速更新的現實需要。作為地理信息消費的主體,政府部門和企事業單位對地理信息的需求巨大,近年來我國政府也提出實現國家和國民經濟信息化的戰略目標,因此,對地理信息現勢性和準確性的要求將越來越高。
目前,我國政府部門專題地理數據更新由國土資源局負責﹑各委辦局自行采集[2],主要使用針對特定業務的采集系統,有些甚至仍以文本表格等方式記錄空間位置以及關聯的屬性信息,隨著業務擴展,原采集系統早已無法使用。因此,本文研究了一種能滿足跨行業需求和高效并發訪問的通用地理信息采集平臺,并通過與數字城市公共地理空間框架接口對接,實現了從地理信息快速采集﹑管理﹑分發到共享的一體化平臺,以解決現有地理信息采集系統的短板和通用性問題。
1.1 MongoDB數據庫
在Web端應用中,空間數據的傳輸和表達主要以非結構化和半結構化數據格式進行交換,傳統的關系型數據庫解決了數據管理中數據高度一致性﹑可靠性和完整性的問題,但在海量數據存儲和訪問﹑非結構化和半結構化數據存儲以及易用性和擴展性等方面還存在難以克服的問題[3]。MongoDB是一個基于分布式文件存儲的開源數據庫系統,提供了面向文檔形式的數據存儲,數據結構由鍵值對組成,支持空間數據存儲和查詢。作為一種NoSQL數據庫系統,相對于關系型數據庫而言,其數據模型更加靈活,支持的數據類型更加多樣,特別是在數據建模﹑存儲和分析方面,其性能和擴展性遠勝于關系型數據庫,在大規模集群部署方面具備高度可擴展性和極佳的性能,且隨著數據量遞增,其性能較關系型數據庫優勢明顯[4]。同時針對海量數據快速處理能力,MongoDB內置了MapReduce模型,利用Mongo-Hadoop適配器連接的方式,可同時發揮分布式系統基礎架構Hadoop的計算能力和MongoDB的數據管理能力[5],在大規模并行計算方面具有較高的執行效率。MongoDB非常適合存儲大規模的非結構化空間數據,且能為并發訪問通用地理信息采集平臺提供較高的性能支持,為后續需求變化﹑各種數據模型的構建提供高度可擴展性。
1.2 空間地理信息虛擬庫(GDAL)
因為平臺未來需支持不同的矢量數據,所以需要解決通用矢量數據訪問接口的問題,還要支持接口的可擴展性能力。
GDAL是一個在X/MIT許可協議下針對通用空間數據訪問的獨立﹑專業開源庫,最早由Frank W開發,后得到許多團體的贊助,支持對柵格影像數據的讀寫和高效處理[6],如影像接邊檢查﹑范圍提取等。它所支持的各種柵格文件格式都建立在一種抽象數據模型的基礎上,每一種文件格式對應一種文件格式驅動類,并采用文件驅動管理類來統一管理所支持的文件格式,具備很好的可擴展性。
OGR是GDAL的一個分支項目,提供對矢量數據的訪問接口,幾乎囊括對所有矢量數據格式的支持,以及空間數據格式轉換和坐標系統轉換[7]。OGR體系包含幾何對象﹑空間參考系統﹑要素﹑要素定義﹑圖層﹑數據源和驅動等7個部分,并基于OpenGIS中的簡單要素數據模型進行建模,其數據類型和方法命名均符合OpenGIS接口規范,為后續通用系統的擴展和體系結構設計奠定了很好的基礎。
本文采用GDAL/OGR庫來支持矢量數據格式,并將不同格式的要素對象數據結構模型轉換為MongoDB數據庫可讀寫的文檔對象[5],同時根據實際需要,支持在OpenGIS接口規范下對空間數據驅動接口進行擴展,以保證通用地理信息采集平臺對可能使用的不同矢量數據格式的支持,滿足平臺通用性要求。
通用架構設計有多種思路,必須根據具體的需要而定。GIS應用互操作通用架構適合從體系結構層面進行考慮,OGC和ISO兩大組織提出了一個通用的GIS應用互操作體系架構[8],即分為交互層﹑處理層和信息管理層,各模塊間通過標準接口進行交互,并對服務﹑功能和模型制定了標準和規范,這些規范可作為GIS互操作的原則和體系架構的基礎。通用GIS應用系統集成采用元數據進行驅動是一個比較有效的解決思路[9]。它將最小功能拆分成原子功能,對各原子功能所面對的業務領域﹑用戶及其相關聯的空間對象進行梳理,并將每一類空間實體對象綁定相關的原子功能,最終實現GIS應用的松散耦合。另外,還可通過建立數據模板和功能模塊的方式來保證系統的通用性[10]。
本文根據地理信息采集的業務邏輯,綜合考慮體系結構和元數據兩個方面,從體系結構層面設計對各種異構空間數據格式的支持和在各平臺實現數據共享發布;從元數據層面設計驅動表現層界面,包括數據關聯邏輯和靈活可定制的數據結構。
2.1 元數據設計
元數據設計主要以圖層為基礎單元,以圖層屬性字段和約束等為原子功能來驅動表現層界面的渲染,包括構建圖層數據的訪問權限﹑圖層數據結構﹑約束性條件﹑元數據之間的一對一﹑一對多﹑多對多以及包含從屬的邏輯關聯關系,通過建立嚴謹的內在邏輯結構驅動通用地理信息采集平臺界面的動態渲染,元數據邏輯結構如圖1所示。
元數據建立在用戶權限的基礎上,圖層表結構的動態創建與修改﹑專題類型與圖層的從屬關系以及圖層的訪問權限信息等都通過元數據表來管理和維護。用戶通過建立專題類型﹑圖層結構屬性等原子功能以及描述完整的內在依賴邏輯和完整性約束,動態地驅動表現層界面展示﹑數據輸入輸出和圖層數據結構,最終根據不同業務需要,實現快速定制圖層數據結構﹑圖層屬性和類型的輸入約束邏輯,以滿足不同業務地理信息采集的通用性﹑可靠性和完整性要求。

圖1 元數據文檔邏輯結構圖
2.2 系統架構設計
GIS應用在邏輯模型﹑數據結構﹑數據量和功能應用等方面具有一定特殊性,為保證平臺具備靈活性﹑可維護性和可伸縮性,本文采用成熟的3層結構模型,即表現層﹑邏輯層和數據層,同時在架構中引入ISO/TC 211和OGC相關規范設計思想[8],盡可能地將空間數據服務劃分為不同的功能模塊,并通過規范的接口進行交互,以便能夠建立靈活的體系結構,適應不同的業務和應用需求變化。通用地理信息采集平臺系統架構如圖2所示。

圖2 通用地理信息采集平臺系統架構
數據層負責數據存儲﹑格式轉換﹑數據訪問和數據服務等數據管理功能;邏輯層提供各種地理信息功能服務﹑空間數據分析以及元數據服務的數據服務接口和功能接口;表現層負責數據展示﹑查詢﹑采集和編輯等數據采集業務流程﹑元數據定義,以及根據元數據定義進行界面渲染。
各層服務和功能模型均通過OGC標準接口或本文定制的標準化接口進行交互,并可與數字城市公共地理空間框架等平臺進行對接,實現數據共享和發布的一鍵式服務。利用GDAL空間信息訪問虛擬庫實現對矢量數據格式的支持,并通過對數據訪問驅動接口的擴展,實現對txt和Excel等文本形式的空間數據訪問和格式轉換功能的支持。基于MongoDB數據庫的地理信息管理模塊,實現了空間數據索引﹑查詢和分析等功能;同時可根據用戶并發訪問實際需求,進行動態彈性的分布式部署和對MongoDB數據庫的處理能力進行伸縮,改善因平臺通用性而大量并發訪問可能導致的性能瓶頸問題。
基于以上關鍵技術和設計思路,通過充分的需求調研,梳理了各需求方對地理信息采集平臺的共性需求,基于ArcGIS API for Javascript開發框架,采用GDAL和MongoDB數據庫設計并開發了一套通用地理信息采集平臺,其功能結構如圖3所示。

圖3 通用地理信息采集平臺功能結構圖
該平臺實現了用戶登錄﹑用戶管理﹑快速定位﹑圖層管理和要素管理等5個功能模塊。圖層管理模塊實現了圖層數據結構的自定義﹑屬性字段數據輸入輸出的約束檢驗﹑根據用戶圖層定義而生成的圖層元數據動態渲染圖層列表﹑字段查詢和編輯﹑圖層樣式及要素查詢﹑要素信息顯示等界面,實現了對txt﹑Excel﹑shp等空間信息數據格式的導入導出,還可根據實際需求快速擴展和定制其他需要支持的導入導出矢量數據格式。平臺提供了規范的圖層發布接口,實現了將圖層發布到“天地圖·南平”的一鍵式發布功能。要素管理模塊實現了強大的地理數據采集功能,包括創建﹑查詢和刪除要素,并提供了多種可選圖形繪制工具和操作回退功能,實現了強大的圖形和屬性信息在線采集﹑編輯和更新功能,如圖4﹑5所示。圖4為通過元數據驅動生成的要素編輯界面,根據元數據定義字段自動完成輸入數據的約束性檢查。

圖4 要素編輯界面

圖5 圖層管理界面
本文基于OGC和ISO等標準組織提出的GIS互操作體系架構思想,采用了一種以元數據為界面驅動來構建Web端通用GIS的技術路線,并實現了通用地理信息采集平臺。經過試運行,該平臺具備較好的靈活性﹑可維護性和可伸縮性,滿足了各委辦局對地理信息數據采集的業務需求,避免了各部門對特定專題數據采集的重復建設,同時也保證了采集的專題數據的快速發布共享,為保障專題信息采集﹑管理和共享等全流轉過程提供了平臺支撐。
[1] 李德仁.移動測量技術及其應用[J].地理空間信息,2006, 4(4):1-5
[2] 黃素麗.數字城市地理空間框架數據更新機制探討[J].測繪與空間地理信息,2015(1):172-174
[3] 覃雄派,王會舉,李芙蓉,等.數據管理技術的新格局[J].軟件學報,2013,24(2):175-197
[4] 李朝奎,楊武,殷智慧,等.MongoDB的遙感影像分布式存儲策略研究[J].測繪通報,2014(5):16-19
[5] 雷德龍,郭殿升,陳崇成,等.基于MongoDB的矢量空間數據云存儲與處理系統[J].地球信息科學學報,2014(4):507-516
[6] 蘇光日,范義鵬,張學之,等.GDAL在地理國情監測項目中的應用[J].測繪與空間地理信息,2014(1):86-88
[7] 孔帥可,喬保軍,付征葉.基于GDAL的ESRI Shapefile格式文件處理[J].計算機時代,2014(8):43-45
[8] 黃海峰,夏斌,趙寶林,等.一種通用GIS應用體系結構的分析與應用[J].地球信息科學,2006(4):31-34
[9] 袁滿,李金榮,高俊濤,等.一種元數據驅動的通用GIS應用集成模型[J].計算機工程,2012(6):282-284
[10] 解智強,杜清運,高忠,等.地下管線通用GIS平臺建設及其在城市排水管理中的應用研究[J].測繪通報,2012(8):72-75
P208
B
1672-4623(2017)09-0066-03
10.3969/j.issn.1672-4623.2017.09.021
2017-03-14。
項目來源:專題地圖展示系統可視化搭建關鍵技術研究(2015J09)。
徐亮,碩士,工程師,研究方向為數據庫技術和GIS應用等。