陸旭龍 ,陳立民 ,談 心
(1.鎮(zhèn)江市勘察測繪研究院,江蘇 鎮(zhèn)江 212004;2.南京大學地理信息科學系,南京 210023)
傳統(tǒng)意義上,空間數(shù)據(jù)(Spatial Data)是指用來描述空間對象的位置、大小、形狀及其分布特征等諸多方面信息,可用以進行空間定位、空間分析,以及反映要素間時空關(guān)系等的幾何數(shù)據(jù)。更廣泛意義上,空間數(shù)據(jù)可以指帶有空間信息的一切文字、符號。在當前大數(shù)據(jù)時代,泛在意義上的空間數(shù)據(jù)不僅指點位、圖形等包含空間位置與屬性的信息,還包括帶有位置信息的軌跡、音頻、視頻等多媒體信息。
長期以來,空間數(shù)據(jù)的管理都是GIS 理論發(fā)展與技術(shù)應(yīng)用的基礎(chǔ)性問題,同時也是決定GIS 技術(shù)能否被用戶接受并得到廣泛應(yīng)用的關(guān)鍵。有效的空間數(shù)據(jù)組織體系一直是數(shù)據(jù)存儲管理技術(shù)研究的熱點。未來空間數(shù)據(jù)的管理將是對可表示復雜和可變對象的、面向?qū)ο蟮摹⒅鲃拥?、模糊的、多媒體的的地理空間數(shù)據(jù)庫系統(tǒng)的綜合管理。
ArcGIS Engine 是一組完備的嵌入式GIS 組件庫和工具庫。使用ArcGIS Engine,技術(shù)人員可以將GIS 功能嵌入到商業(yè)性的生產(chǎn)應(yīng)用軟件中,如Mirosoft Word 和Excel;或嵌入到已有的專業(yè)應(yīng)用軟件中。ArcGIS Engine 由兩個部分組成:構(gòu)建軟件所用的開發(fā)工具包以及支撐應(yīng)用程序的可再發(fā)布的Runtime庫(運行時環(huán)境)。ArcGIS Engine開發(fā)工具包是一個基于組件的軟件開發(fā)產(chǎn)品,可用于構(gòu)建自定義GIS和制圖應(yīng)用軟件,適于為Windows、UNIX 或Linux 用戶構(gòu)建基礎(chǔ)制圖和綜合動態(tài)GIS 應(yīng)用軟件。ArcGIS Engine Runtime 是一個使終端用戶軟件能夠運行的核心ArcObjects 組件產(chǎn)品,基于ArcGIS Engine的 應(yīng)用程序都必須同時安裝相應(yīng)的Runtime庫。
本文基于ArcGIS Engine開發(fā)平臺,利用空間數(shù)據(jù)模型Geodatabase建立并管理地理空間數(shù)據(jù),通過空間數(shù)據(jù)引擎ArcSDE來存儲、加工和檢索關(guān)系型數(shù)據(jù)庫中的空間數(shù)據(jù),從而實現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的無縫集成和一體化存儲管理。
模塊采用組件式(COM)開發(fā)技術(shù),將復雜的應(yīng)用程序設(shè)計成一些小的功能單一的組件模塊,這些組件模塊可以在同一臺機器上運行,也可以在不同的機器上運行,甚至可以在相隔遙遠的兩臺機器上運行。COM是組件對象模型(component object model)的簡稱,是一種以組件為基本組成單元的對象模型,使各軟件的各個組成部分可以用一種統(tǒng)一的方式進行交互。COM既提供組件之間進行交互的規(guī)范,也提供實現(xiàn)交互的環(huán)境。
模塊所用的關(guān)系數(shù)據(jù)庫為SQL Server 2008,通過ArcSDE服務(wù)來連接并操作數(shù)據(jù)庫中的地理空間數(shù)據(jù)和非空間數(shù)據(jù),模塊基于Microsoft .NET使用C#語言開發(fā)。
空間數(shù)據(jù)管理模塊分為三層結(jié)構(gòu):顯示層(USL),業(yè)務(wù)邏輯層(BLL),數(shù)據(jù)訪問層(DAL)。使用三層結(jié)構(gòu)的設(shè)計思想可以使得系統(tǒng)具有比較好的分布式特征,可以根據(jù)實際情況需要確定部署模式,有利于后期的維護和升級。三層結(jié)構(gòu)示意圖如下:
圖1 空間數(shù)據(jù)管理模塊三層架構(gòu)
數(shù)據(jù)層主要負責對原始數(shù)據(jù)(數(shù)據(jù)庫文件、文本文件及涉及空間位置信息數(shù)據(jù))的操作。該層為多源異構(gòu)多版本的數(shù)據(jù)建立統(tǒng)一接口,提取生成業(yè)務(wù)邏輯關(guān)系所必需的基礎(chǔ)信息及空間信息。該層為整個結(jié)構(gòu)的基礎(chǔ),是為整個業(yè)務(wù)流程關(guān)系提供數(shù)據(jù)服務(wù)的關(guān)鍵。
業(yè)務(wù)邏輯層主要負責針對業(yè)務(wù)工作中具體問題的操作,也可以說是對數(shù)據(jù)集中有用信息的提取和再加工包裝,并與其它層合作形成業(yè)務(wù)邏輯關(guān)系,例如,一條任務(wù)處理涉及到多個部門與環(huán)節(jié),每一個環(huán)節(jié)的經(jīng)手人都參與構(gòu)建整條工作流程,包括經(jīng)手人的自然信息、業(yè)務(wù)操作的時間、空間位置等等,都必須記錄在案。這其中的邏輯關(guān)系必須得到清楚、明確的存儲與表達。
顯示層是系統(tǒng)模塊的UI部分,負責展示結(jié)果并使得使用者與整個系統(tǒng)可以流暢地交互。顯示層中的邏輯代碼,既與界面元素的藝術(shù)設(shè)計有關(guān),也和地理空間信息的可視化有關(guān)。UI相對獨立于邏輯層與數(shù)據(jù)層,可以依據(jù)用戶需求而定制??臻g信息可視化涉及到地圖符號的設(shè)計與地圖不同色塊的配色。做好空間數(shù)據(jù)的可視化對整個系統(tǒng)的包裝與推廣具有不可忽視的作用。
模塊的主要功能包括目錄管理、空間數(shù)據(jù)庫管理、檢索三個部分。目錄管理包括文件瀏覽(針對多種格式的地理信息數(shù)據(jù)的顯示和查看)、文件添加與刪除(如:文件夾、要素類、地理數(shù)據(jù)表等)、文件修改(如:要素名稱、地理數(shù)據(jù)表名稱等)。
空間數(shù)據(jù)庫的管理包含:地理數(shù)據(jù)表管理(包括地理數(shù)據(jù)的瀏覽、地理數(shù)據(jù)表字段的添加和刪除、地理數(shù)據(jù)表索引的添加和刪除等)、圖層管理、圖形文件管理(要素類的字段添加和刪除、要素類的空間參考的添改及刪除、要素類中的數(shù)據(jù)瀏覽等)、工程文件管理。此外,特別重要的是:自然屬性信息與位置信息的匹配與關(guān)聯(lián)??傮w可以概括為字段管理、空間參考管理、索引管理、數(shù)據(jù)瀏覽管理、空間參照建立、專題數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)的導出等。
檢索功能包括屬性檢索和空間檢索??臻g檢索利用ArcGIS Engine,可用鼠標點擊進行范圍檢索(圓、框、多邊形等)。
圖2 空間數(shù)據(jù)管理模塊功能結(jié)構(gòu)圖
5.2.1 空間對象的目錄層次管理
目錄管理可以通過目錄瀏覽快速定位到想看的表或地圖,便于對空間信息查看、修改、刪除等操作,是空間數(shù)據(jù)管理的基礎(chǔ)。數(shù)據(jù)目錄需實行分條目顯示,以便區(qū)分數(shù)據(jù)類型。
5.2.2 空間對象的參考標準制定
地理空間數(shù)據(jù)代表著現(xiàn)實世界的某個對象或某個事件,其中每一個要素都代表了現(xiàn)實世界的某一物體或者事件發(fā)生的位置。如何對一個要素進行精確定位,涉及統(tǒng)一空間參考系的問題。目前普遍采用基于地球橢球體建立的世界坐標系統(tǒng)。
為了使空間數(shù)據(jù)能夠相互關(guān)聯(lián),必須設(shè)置空間參考??臻g參考包含一個坐標系統(tǒng)(地理坐標系統(tǒng)或投影坐標系統(tǒng)),它定義了空間數(shù)據(jù)的統(tǒng)一的數(shù)學坐標系。在同一地圖上顯示的地理數(shù)據(jù)的空間參考必須經(jīng)過一致性配準。如果兩個圖層的空間參考不一致,會導致兩幅地圖無法正確拼合。
5.2.3 基于Geodatabase和ArcSDE的空間數(shù)據(jù)存儲與管理技術(shù)
空間數(shù)據(jù)庫是被統(tǒng)一存儲起來的空間數(shù)據(jù)的集合,是地理信息系統(tǒng)的重要組成部分,是GIS系統(tǒng)的數(shù)據(jù)支撐。GIS系統(tǒng)需要處理的數(shù)據(jù)分為兩類:一類主要是與空間位置、空間關(guān)系相關(guān)的數(shù)據(jù),統(tǒng)稱空間數(shù)據(jù);另一類是要素的屬性信息,稱為屬性數(shù)據(jù)。傳統(tǒng)的數(shù)據(jù)處理方法是將兩類數(shù)據(jù)分開存儲,利用關(guān)系型數(shù)據(jù)庫(RDBMS)來存儲屬性數(shù)據(jù) ??紤]到空間數(shù)據(jù)與文字記錄相比具有特殊性,很難將其所表達的所有信息放在表中進行管理。如經(jīng)過數(shù)字化得到的Shapefile或Coverage,都是以文件形式獨立存儲 。通過在空間數(shù)據(jù)文件和屬性數(shù)據(jù)之間建立關(guān)聯(lián)來構(gòu)建應(yīng)用系統(tǒng),可充分利用數(shù)據(jù)庫以及文件系統(tǒng)的各自優(yōu)勢。
基于Geodatabase + ArcSDE的空間數(shù)據(jù)庫管理技術(shù)利用關(guān)系型數(shù)據(jù)庫來存儲和處理空間數(shù)據(jù),實現(xiàn)了空間數(shù)據(jù)和屬性數(shù)據(jù)的無縫集成和一體化存儲管理。ArcSDE在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)和地理信息系統(tǒng)(GIS)之間充當一個應(yīng)用網(wǎng)關(guān),充分地把GIS和RDBMS集成起來,實現(xiàn)空間數(shù)據(jù)的導入導出,以及數(shù)據(jù)庫操作、要素的空間檢索和空間信息的增刪改等功能的數(shù)據(jù)操作支持。
隨著科學技術(shù)和經(jīng)濟社會的發(fā)展,人們已經(jīng)越來越認識到空間數(shù)據(jù)對于政府、企業(yè)與公眾生活的重要性,加快了人們獲取、應(yīng)用空間信息的步伐。在當前大數(shù)據(jù)時代,隨著智慧城市建設(shè)的風行,空間數(shù)據(jù)的重要性及其管理所面臨的復雜性均越來越顯著。
本文提出基于ArcGIS Engine實現(xiàn)空間數(shù)據(jù)管理模塊的技術(shù)路線,并予以開發(fā)實現(xiàn),實現(xiàn)了空間數(shù)據(jù)目錄瀏覽、地理數(shù)據(jù)組織與空間數(shù)據(jù)庫的管理及空間檢索等主要功能,具有兼容性好以及二次可開發(fā)能力強等優(yōu)勢。在業(yè)務(wù)關(guān)系模型以及空間數(shù)據(jù)管理效率方面仍需作進一步探索,進一步的工作將體現(xiàn)在基于已有的空間數(shù)據(jù)管理方式提供效率評價指標并根據(jù)不同的業(yè)務(wù)模式需求提供靈活的可拓展的應(yīng)對技術(shù)框架方面。
[1]劉經(jīng)南,方媛,郭遲,高柯夫. 位置大數(shù)據(jù)的分析處理研究進展[J].武漢大學學報·信息科學版,2014(04):379~384.
[2]蘆倩,劉旭華,高晨.基于ARCGIS ENGINE 的水文生態(tài)數(shù)據(jù)管理系統(tǒng)的研究與設(shè)計[J]. 甘肅科技,2013(04):23~27.
[3]王曉燕,陳宏斐. 基于ArcGIS Engine的農(nóng)村土地信息系統(tǒng)設(shè)計與實現(xiàn)[J].東華理工大學學報·自然科學版,2013(02):219~223.
[4]劉三民,王杰文.空間數(shù)據(jù)存儲管理研究綜述[J]. 電腦與信息技術(shù),2006(03):21~29.
[5]蔣波濤.ArcObjects開發(fā)基礎(chǔ)與技巧(1)[M].武漢.武漢大學出版社,2006:328~334.
[6]潘愛民.COM原理與應(yīng)用[M].北京.清華大學出版社,2000:18~20.
[7]劉南,劉仁義.地理信息系統(tǒng)[M].北京.高等教育出版社,2006:114~115.
[8]孟華.基于Geodatabase和ArcSDE的濕地GIS數(shù)據(jù)庫技術(shù)研究與應(yīng)用實例[J].計算機應(yīng)用研究,2005(10):184~186.