徐 亮
(1.福建省基礎(chǔ)地理信息中心,福建 福州 350001)
一種通用地理信息采集平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
徐 亮1
(1.福建省基礎(chǔ)地理信息中心,福建 福州 350001)
基于MongoDB數(shù)據(jù)庫(kù),設(shè)計(jì)并實(shí)現(xiàn)了一種以元數(shù)據(jù)為界面驅(qū)動(dòng)的,能快速構(gòu)建各種業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)的,能滿足空間數(shù)據(jù)管理﹑共享和發(fā)布的通用地理信息采集平臺(tái)。應(yīng)用結(jié)果表明,該系統(tǒng)框架具有高效﹑通用﹑靈活可擴(kuò)展等特點(diǎn),能夠?qū)崿F(xiàn)從數(shù)據(jù)采集到應(yīng)用的一體化功能。
地理信息采集;通用;WebGIS;MongoDB
隨著我國(guó)經(jīng)濟(jì)的高速增長(zhǎng),城市和基礎(chǔ)設(shè)施發(fā)生著日新月異的變化,據(jù)2006年一篇文獻(xiàn)中的估計(jì),北京﹑上海這樣的大城市,每年有40%以上的地圖內(nèi)容應(yīng)得到更新,而傳統(tǒng)落后的測(cè)繪方式需0.5 a或1 a以上的時(shí)間[1],根本無(wú)法適應(yīng)這種快速更新的現(xiàn)實(shí)需要。作為地理信息消費(fèi)的主體,政府部門和企事業(yè)單位對(duì)地理信息的需求巨大,近年來(lái)我國(guó)政府也提出實(shí)現(xiàn)國(guó)家和國(guó)民經(jīng)濟(jì)信息化的戰(zhàn)略目標(biāo),因此,對(duì)地理信息現(xiàn)勢(shì)性和準(zhǔn)確性的要求將越來(lái)越高。
目前,我國(guó)政府部門專題地理數(shù)據(jù)更新由國(guó)土資源局負(fù)責(zé)﹑各委辦局自行采集[2],主要使用針對(duì)特定業(yè)務(wù)的采集系統(tǒng),有些甚至仍以文本表格等方式記錄空間位置以及關(guān)聯(lián)的屬性信息,隨著業(yè)務(wù)擴(kuò)展,原采集系統(tǒng)早已無(wú)法使用。因此,本文研究了一種能滿足跨行業(yè)需求和高效并發(fā)訪問(wèn)的通用地理信息采集平臺(tái),并通過(guò)與數(shù)字城市公共地理空間框架接口對(duì)接,實(shí)現(xiàn)了從地理信息快速采集﹑管理﹑分發(fā)到共享的一體化平臺(tái),以解決現(xiàn)有地理信息采集系統(tǒng)的短板和通用性問(wèn)題。
1.1 MongoDB數(shù)據(jù)庫(kù)
在Web端應(yīng)用中,空間數(shù)據(jù)的傳輸和表達(dá)主要以非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)格式進(jìn)行交換,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)解決了數(shù)據(jù)管理中數(shù)據(jù)高度一致性﹑可靠性和完整性的問(wèn)題,但在海量數(shù)據(jù)存儲(chǔ)和訪問(wèn)﹑非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)以及易用性和擴(kuò)展性等方面還存在難以克服的問(wèn)題[3]。MongoDB是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng),提供了面向文檔形式的數(shù)據(jù)存儲(chǔ),數(shù)據(jù)結(jié)構(gòu)由鍵值對(duì)組成,支持空間數(shù)據(jù)存儲(chǔ)和查詢。作為一種NoSQL數(shù)據(jù)庫(kù)系統(tǒng),相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)而言,其數(shù)據(jù)模型更加靈活,支持的數(shù)據(jù)類型更加多樣,特別是在數(shù)據(jù)建模﹑存儲(chǔ)和分析方面,其性能和擴(kuò)展性遠(yuǎn)勝于關(guān)系型數(shù)據(jù)庫(kù),在大規(guī)模集群部署方面具備高度可擴(kuò)展性和極佳的性能,且隨著數(shù)據(jù)量遞增,其性能較關(guān)系型數(shù)據(jù)庫(kù)優(yōu)勢(shì)明顯[4]。同時(shí)針對(duì)海量數(shù)據(jù)快速處理能力,MongoDB內(nèi)置了MapReduce模型,利用Mongo-Hadoop適配器連接的方式,可同時(shí)發(fā)揮分布式系統(tǒng)基礎(chǔ)架構(gòu)Hadoop的計(jì)算能力和MongoDB的數(shù)據(jù)管理能力[5],在大規(guī)模并行計(jì)算方面具有較高的執(zhí)行效率。MongoDB非常適合存儲(chǔ)大規(guī)模的非結(jié)構(gòu)化空間數(shù)據(jù),且能為并發(fā)訪問(wèn)通用地理信息采集平臺(tái)提供較高的性能支持,為后續(xù)需求變化﹑各種數(shù)據(jù)模型的構(gòu)建提供高度可擴(kuò)展性。
1.2 空間地理信息虛擬庫(kù)(GDAL)
因?yàn)槠脚_(tái)未來(lái)需支持不同的矢量數(shù)據(jù),所以需要解決通用矢量數(shù)據(jù)訪問(wèn)接口的問(wèn)題,還要支持接口的可擴(kuò)展性能力。
GDAL是一個(gè)在X/MIT許可協(xié)議下針對(duì)通用空間數(shù)據(jù)訪問(wèn)的獨(dú)立﹑專業(yè)開(kāi)源庫(kù),最早由Frank W開(kāi)發(fā),后得到許多團(tuán)體的贊助,支持對(duì)柵格影像數(shù)據(jù)的讀寫和高效處理[6],如影像接邊檢查﹑范圍提取等。它所支持的各種柵格文件格式都建立在一種抽象數(shù)據(jù)模型的基礎(chǔ)上,每一種文件格式對(duì)應(yīng)一種文件格式驅(qū)動(dòng)類,并采用文件驅(qū)動(dòng)管理類來(lái)統(tǒng)一管理所支持的文件格式,具備很好的可擴(kuò)展性。
OGR是GDAL的一個(gè)分支項(xiàng)目,提供對(duì)矢量數(shù)據(jù)的訪問(wèn)接口,幾乎囊括對(duì)所有矢量數(shù)據(jù)格式的支持,以及空間數(shù)據(jù)格式轉(zhuǎn)換和坐標(biāo)系統(tǒng)轉(zhuǎn)換[7]。OGR體系包含幾何對(duì)象﹑空間參考系統(tǒng)﹑要素﹑要素定義﹑圖層﹑數(shù)據(jù)源和驅(qū)動(dòng)等7個(gè)部分,并基于OpenGIS中的簡(jiǎn)單要素?cái)?shù)據(jù)模型進(jìn)行建模,其數(shù)據(jù)類型和方法命名均符合OpenGIS接口規(guī)范,為后續(xù)通用系統(tǒng)的擴(kuò)展和體系結(jié)構(gòu)設(shè)計(jì)奠定了很好的基礎(chǔ)。
本文采用GDAL/OGR庫(kù)來(lái)支持矢量數(shù)據(jù)格式,并將不同格式的要素對(duì)象數(shù)據(jù)結(jié)構(gòu)模型轉(zhuǎn)換為MongoDB數(shù)據(jù)庫(kù)可讀寫的文檔對(duì)象[5],同時(shí)根據(jù)實(shí)際需要,支持在OpenGIS接口規(guī)范下對(duì)空間數(shù)據(jù)驅(qū)動(dòng)接口進(jìn)行擴(kuò)展,以保證通用地理信息采集平臺(tái)對(duì)可能使用的不同矢量數(shù)據(jù)格式的支持,滿足平臺(tái)通用性要求。
通用架構(gòu)設(shè)計(jì)有多種思路,必須根據(jù)具體的需要而定。GIS應(yīng)用互操作通用架構(gòu)適合從體系結(jié)構(gòu)層面進(jìn)行考慮,OGC和ISO兩大組織提出了一個(gè)通用的GIS應(yīng)用互操作體系架構(gòu)[8],即分為交互層﹑處理層和信息管理層,各模塊間通過(guò)標(biāo)準(zhǔn)接口進(jìn)行交互,并對(duì)服務(wù)﹑功能和模型制定了標(biāo)準(zhǔn)和規(guī)范,這些規(guī)范可作為GIS互操作的原則和體系架構(gòu)的基礎(chǔ)。通用GIS應(yīng)用系統(tǒng)集成采用元數(shù)據(jù)進(jìn)行驅(qū)動(dòng)是一個(gè)比較有效的解決思路[9]。它將最小功能拆分成原子功能,對(duì)各原子功能所面對(duì)的業(yè)務(wù)領(lǐng)域﹑用戶及其相關(guān)聯(lián)的空間對(duì)象進(jìn)行梳理,并將每一類空間實(shí)體對(duì)象綁定相關(guān)的原子功能,最終實(shí)現(xiàn)GIS應(yīng)用的松散耦合。另外,還可通過(guò)建立數(shù)據(jù)模板和功能模塊的方式來(lái)保證系統(tǒng)的通用性[10]。
本文根據(jù)地理信息采集的業(yè)務(wù)邏輯,綜合考慮體系結(jié)構(gòu)和元數(shù)據(jù)兩個(gè)方面,從體系結(jié)構(gòu)層面設(shè)計(jì)對(duì)各種異構(gòu)空間數(shù)據(jù)格式的支持和在各平臺(tái)實(shí)現(xiàn)數(shù)據(jù)共享發(fā)布;從元數(shù)據(jù)層面設(shè)計(jì)驅(qū)動(dòng)表現(xiàn)層界面,包括數(shù)據(jù)關(guān)聯(lián)邏輯和靈活可定制的數(shù)據(jù)結(jié)構(gòu)。
2.1 元數(shù)據(jù)設(shè)計(jì)
元數(shù)據(jù)設(shè)計(jì)主要以圖層為基礎(chǔ)單元,以圖層屬性字段和約束等為原子功能來(lái)驅(qū)動(dòng)表現(xiàn)層界面的渲染,包括構(gòu)建圖層數(shù)據(jù)的訪問(wèn)權(quán)限﹑圖層數(shù)據(jù)結(jié)構(gòu)﹑約束性條件﹑元數(shù)據(jù)之間的一對(duì)一﹑一對(duì)多﹑多對(duì)多以及包含從屬的邏輯關(guān)聯(lián)關(guān)系,通過(guò)建立嚴(yán)謹(jǐn)?shù)膬?nèi)在邏輯結(jié)構(gòu)驅(qū)動(dòng)通用地理信息采集平臺(tái)界面的動(dòng)態(tài)渲染,元數(shù)據(jù)邏輯結(jié)構(gòu)如圖1所示。
元數(shù)據(jù)建立在用戶權(quán)限的基礎(chǔ)上,圖層表結(jié)構(gòu)的動(dòng)態(tài)創(chuàng)建與修改﹑專題類型與圖層的從屬關(guān)系以及圖層的訪問(wèn)權(quán)限信息等都通過(guò)元數(shù)據(jù)表來(lái)管理和維護(hù)。用戶通過(guò)建立專題類型﹑圖層結(jié)構(gòu)屬性等原子功能以及描述完整的內(nèi)在依賴邏輯和完整性約束,動(dòng)態(tài)地驅(qū)動(dòng)表現(xiàn)層界面展示﹑數(shù)據(jù)輸入輸出和圖層數(shù)據(jù)結(jié)構(gòu),最終根據(jù)不同業(yè)務(wù)需要,實(shí)現(xiàn)快速定制圖層數(shù)據(jù)結(jié)構(gòu)﹑圖層屬性和類型的輸入約束邏輯,以滿足不同業(yè)務(wù)地理信息采集的通用性﹑可靠性和完整性要求。
圖1 元數(shù)據(jù)文檔邏輯結(jié)構(gòu)圖
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
GIS應(yīng)用在邏輯模型﹑數(shù)據(jù)結(jié)構(gòu)﹑數(shù)據(jù)量和功能應(yīng)用等方面具有一定特殊性,為保證平臺(tái)具備靈活性﹑可維護(hù)性和可伸縮性,本文采用成熟的3層結(jié)構(gòu)模型,即表現(xiàn)層﹑邏輯層和數(shù)據(jù)層,同時(shí)在架構(gòu)中引入ISO/TC 211和OGC相關(guān)規(guī)范設(shè)計(jì)思想[8],盡可能地將空間數(shù)據(jù)服務(wù)劃分為不同的功能模塊,并通過(guò)規(guī)范的接口進(jìn)行交互,以便能夠建立靈活的體系結(jié)構(gòu),適應(yīng)不同的業(yè)務(wù)和應(yīng)用需求變化。通用地理信息采集平臺(tái)系統(tǒng)架構(gòu)如圖2所示。
圖2 通用地理信息采集平臺(tái)系統(tǒng)架構(gòu)
數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)存儲(chǔ)﹑格式轉(zhuǎn)換﹑數(shù)據(jù)訪問(wèn)和數(shù)據(jù)服務(wù)等數(shù)據(jù)管理功能;邏輯層提供各種地理信息功能服務(wù)﹑空間數(shù)據(jù)分析以及元數(shù)據(jù)服務(wù)的數(shù)據(jù)服務(wù)接口和功能接口;表現(xiàn)層負(fù)責(zé)數(shù)據(jù)展示﹑查詢﹑采集和編輯等數(shù)據(jù)采集業(yè)務(wù)流程﹑元數(shù)據(jù)定義,以及根據(jù)元數(shù)據(jù)定義進(jìn)行界面渲染。
各層服務(wù)和功能模型均通過(guò)OGC標(biāo)準(zhǔn)接口或本文定制的標(biāo)準(zhǔn)化接口進(jìn)行交互,并可與數(shù)字城市公共地理空間框架等平臺(tái)進(jìn)行對(duì)接,實(shí)現(xiàn)數(shù)據(jù)共享和發(fā)布的一鍵式服務(wù)。利用GDAL空間信息訪問(wèn)虛擬庫(kù)實(shí)現(xiàn)對(duì)矢量數(shù)據(jù)格式的支持,并通過(guò)對(duì)數(shù)據(jù)訪問(wèn)驅(qū)動(dòng)接口的擴(kuò)展,實(shí)現(xiàn)對(duì)txt和Excel等文本形式的空間數(shù)據(jù)訪問(wèn)和格式轉(zhuǎn)換功能的支持。基于MongoDB數(shù)據(jù)庫(kù)的地理信息管理模塊,實(shí)現(xiàn)了空間數(shù)據(jù)索引﹑查詢和分析等功能;同時(shí)可根據(jù)用戶并發(fā)訪問(wèn)實(shí)際需求,進(jìn)行動(dòng)態(tài)彈性的分布式部署和對(duì)MongoDB數(shù)據(jù)庫(kù)的處理能力進(jìn)行伸縮,改善因平臺(tái)通用性而大量并發(fā)訪問(wèn)可能導(dǎo)致的性能瓶頸問(wèn)題。
基于以上關(guān)鍵技術(shù)和設(shè)計(jì)思路,通過(guò)充分的需求調(diào)研,梳理了各需求方對(duì)地理信息采集平臺(tái)的共性需求,基于ArcGIS API for Javascript開(kāi)發(fā)框架,采用GDAL和MongoDB數(shù)據(jù)庫(kù)設(shè)計(jì)并開(kāi)發(fā)了一套通用地理信息采集平臺(tái),其功能結(jié)構(gòu)如圖3所示。
圖3 通用地理信息采集平臺(tái)功能結(jié)構(gòu)圖
該平臺(tái)實(shí)現(xiàn)了用戶登錄﹑用戶管理﹑快速定位﹑圖層管理和要素管理等5個(gè)功能模塊。圖層管理模塊實(shí)現(xiàn)了圖層數(shù)據(jù)結(jié)構(gòu)的自定義﹑屬性字段數(shù)據(jù)輸入輸出的約束檢驗(yàn)﹑根據(jù)用戶圖層定義而生成的圖層元數(shù)據(jù)動(dòng)態(tài)渲染圖層列表﹑字段查詢和編輯﹑圖層樣式及要素查詢﹑要素信息顯示等界面,實(shí)現(xiàn)了對(duì)txt﹑Excel﹑shp等空間信息數(shù)據(jù)格式的導(dǎo)入導(dǎo)出,還可根據(jù)實(shí)際需求快速擴(kuò)展和定制其他需要支持的導(dǎo)入導(dǎo)出矢量數(shù)據(jù)格式。平臺(tái)提供了規(guī)范的圖層發(fā)布接口,實(shí)現(xiàn)了將圖層發(fā)布到“天地圖·南平”的一鍵式發(fā)布功能。要素管理模塊實(shí)現(xiàn)了強(qiáng)大的地理數(shù)據(jù)采集功能,包括創(chuàng)建﹑查詢和刪除要素,并提供了多種可選圖形繪制工具和操作回退功能,實(shí)現(xiàn)了強(qiáng)大的圖形和屬性信息在線采集﹑編輯和更新功能,如圖4﹑5所示。圖4為通過(guò)元數(shù)據(jù)驅(qū)動(dòng)生成的要素編輯界面,根據(jù)元數(shù)據(jù)定義字段自動(dòng)完成輸入數(shù)據(jù)的約束性檢查。
圖4 要素編輯界面
圖5 圖層管理界面
本文基于OGC和ISO等標(biāo)準(zhǔn)組織提出的GIS互操作體系架構(gòu)思想,采用了一種以元數(shù)據(jù)為界面驅(qū)動(dòng)來(lái)構(gòu)建Web端通用GIS的技術(shù)路線,并實(shí)現(xiàn)了通用地理信息采集平臺(tái)。經(jīng)過(guò)試運(yùn)行,該平臺(tái)具備較好的靈活性﹑可維護(hù)性和可伸縮性,滿足了各委辦局對(duì)地理信息數(shù)據(jù)采集的業(yè)務(wù)需求,避免了各部門對(duì)特定專題數(shù)據(jù)采集的重復(fù)建設(shè),同時(shí)也保證了采集的專題數(shù)據(jù)的快速發(fā)布共享,為保障專題信息采集﹑管理和共享等全流轉(zhuǎn)過(guò)程提供了平臺(tái)支撐。
[1] 李德仁.移動(dòng)測(cè)量技術(shù)及其應(yīng)用[J].地理空間信息,2006, 4(4):1-5
[2] 黃素麗.數(shù)字城市地理空間框架數(shù)據(jù)更新機(jī)制探討[J].測(cè)繪與空間地理信息,2015(1):172-174
[3] 覃雄派,王會(huì)舉,李芙蓉,等.數(shù)據(jù)管理技術(shù)的新格局[J].軟件學(xué)報(bào),2013,24(2):175-197
[4] 李朝奎,楊武,殷智慧,等.MongoDB的遙感影像分布式存儲(chǔ)策略研究[J].測(cè)繪通報(bào),2014(5):16-19
[5] 雷德龍,郭殿升,陳崇成,等.基于MongoDB的矢量空間數(shù)據(jù)云存儲(chǔ)與處理系統(tǒng)[J].地球信息科學(xué)學(xué)報(bào),2014(4):507-516
[6] 蘇光日,范義鵬,張學(xué)之,等.GDAL在地理國(guó)情監(jiān)測(cè)項(xiàng)目中的應(yīng)用[J].測(cè)繪與空間地理信息,2014(1):86-88
[7] 孔帥可,喬保軍,付征葉.基于GDAL的ESRI Shapefile格式文件處理[J].計(jì)算機(jī)時(shí)代,2014(8):43-45
[8] 黃海峰,夏斌,趙寶林,等.一種通用GIS應(yīng)用體系結(jié)構(gòu)的分析與應(yīng)用[J].地球信息科學(xué),2006(4):31-34
[9] 袁滿,李金榮,高俊濤,等.一種元數(shù)據(jù)驅(qū)動(dòng)的通用GIS應(yīng)用集成模型[J].計(jì)算機(jī)工程,2012(6):282-284
[10] 解智強(qiáng),杜清運(yùn),高忠,等.地下管線通用GIS平臺(tái)建設(shè)及其在城市排水管理中的應(yīng)用研究[J].測(cè)繪通報(bào),2012(8):72-75
P208
B
1672-4623(2017)09-0066-03
10.3969/j.issn.1672-4623.2017.09.021
2017-03-14。
項(xiàng)目來(lái)源:專題地圖展示系統(tǒng)可視化搭建關(guān)鍵技術(shù)研究(2015J09)。
徐亮,碩士,工程師,研究方向?yàn)閿?shù)據(jù)庫(kù)技術(shù)和GIS應(yīng)用等。