吳 松
(安徽師范大學(xué)國土資源與旅游學(xué)院,安徽蕪湖 241003)
?
基于GML的圖庫一體化數(shù)據(jù)存儲及應(yīng)用
吳 松
(安徽師范大學(xué)國土資源與旅游學(xué)院,安徽蕪湖 241003)
摘要為解決傳統(tǒng)的圖庫一體化中制圖數(shù)據(jù)與基礎(chǔ)數(shù)據(jù)分離且格式不統(tǒng)一問題,引入能夠表示地理空間對象的空間數(shù)據(jù)和非空間屬性數(shù)據(jù)GML(地理標(biāo)識語言)文檔,建立圖庫一體化模型,實現(xiàn)數(shù)據(jù)統(tǒng)一存儲管理和應(yīng)用。首先將GIS數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù)建庫,制定相應(yīng)的配圖方案形成制圖數(shù)據(jù),用GML技術(shù)將上述基礎(chǔ)數(shù)據(jù)與制圖數(shù)據(jù)即地圖配置數(shù)據(jù)統(tǒng)一存儲和管理,建立GML圖庫一體化模型;然后從GML地理數(shù)據(jù)庫中提取與制圖數(shù)據(jù)有關(guān)的信息并分析GML地理要素的屬性,從地圖符號庫中匹配出表示該地理要素的地圖符號信息,運用編程語言實現(xiàn)地圖配置并保存至GML數(shù)據(jù)庫,實現(xiàn)制圖數(shù)據(jù)與基礎(chǔ)數(shù)據(jù)的一體化存儲。以某縣級開發(fā)區(qū)土地利用數(shù)據(jù)為例對GML數(shù)據(jù)庫的應(yīng)用進行分析,運用C#編程語言完成土地利用數(shù)據(jù)的GML存儲,采用ArcEngine提供的可視化控件實現(xiàn)GML可視化,通過ArcGIS Engine提供的地圖整飾功能進行制圖輸出,實現(xiàn)圖庫一體化GML數(shù)據(jù)的應(yīng)用。
關(guān)鍵詞GML;圖庫一體化;數(shù)據(jù)存儲;應(yīng)用
隨著計算機技術(shù)的廣泛應(yīng)用,目前地圖生產(chǎn)的全部過程都可以在計算機上實現(xiàn),數(shù)字制圖軟件對數(shù)據(jù)的存儲和管理以及生產(chǎn)數(shù)字地圖和紙質(zhì)地圖起到了關(guān)鍵作用[1]。但現(xiàn)在制圖軟件眾多且數(shù)據(jù)格式不統(tǒng)一,建庫數(shù)據(jù)表示的側(cè)重點不一樣,難以實現(xiàn)不同平臺的數(shù)據(jù)共享,基礎(chǔ)數(shù)據(jù)和制圖規(guī)則存儲分開,不能統(tǒng)一管理,GIS應(yīng)用與制圖應(yīng)用也不能同時兼顧。目前有關(guān)軟件可分為3類:①通用矢量圖形軟件,包括CorelDraw、Photoshop;制圖類軟件,包括MapGIS、AutoCAD、MicroStation;GIS 類軟件,包括MapInfo、ArcGIS。雖然數(shù)字制圖軟件數(shù)量眾多、各有特色,但這些軟件要么是面向傳統(tǒng)圖形應(yīng)用,不能進行空間分析;要么是側(cè)重空間數(shù)據(jù)的采集和分析應(yīng)用,不能制出完美的地圖。因此,要實現(xiàn)兩者的功能必須建立兩套數(shù)據(jù)庫,但它們不能同時對制圖數(shù)據(jù)和空間數(shù)據(jù)進行存儲,無法將兩類信息進行統(tǒng)一管理。要想利用一套數(shù)據(jù)庫,既能實現(xiàn)空間分析和制圖應(yīng)用,又能將制圖數(shù)據(jù)與空間數(shù)據(jù)存儲在一起,可通過基于GML的圖庫一體化來實現(xiàn)。
圖庫一體化是一個涉及空間數(shù)據(jù)采集生產(chǎn)、存儲、管理、制圖輸出的全過程的完整的技術(shù)解決方案體系,包括數(shù)據(jù)生產(chǎn)標(biāo)準(zhǔn)、工藝流程、數(shù)據(jù)庫結(jié)構(gòu)的制定以及支持工藝流程各階段數(shù)據(jù)編輯、處理的軟件系統(tǒng)[2]。目前國內(nèi)外學(xué)者對圖庫一體化作了廣泛地研究,主要是對數(shù)據(jù)存儲管理、制圖輸出和生產(chǎn)流程研究,也都達到了一定的效果。他們在圖庫一體化研究思想上基本相似,在數(shù)據(jù)建庫與制圖方法上各有不同,能夠解決一些制圖與分析的需要,但是存在所選建庫數(shù)據(jù)源不夠完備、數(shù)據(jù)表達的范圍有限且存儲復(fù)雜、僅適合本系統(tǒng)且通用性差等不足,在制圖規(guī)則表達和數(shù)據(jù)存儲上也顯得復(fù)雜,且制圖數(shù)據(jù)與基礎(chǔ)數(shù)據(jù)不能統(tǒng)一存儲,多數(shù)制圖規(guī)則只能配置同一比例尺下的地圖數(shù)據(jù),一套配圖方案只能顯示一張地圖。雖然GML技術(shù)改進了數(shù)據(jù)存儲方式,但通常都是對數(shù)據(jù)分層存儲,一個GML文檔僅代表一個圖層,不能將圖層文檔合并存儲。而且GML并沒有涉及制圖數(shù)據(jù)應(yīng)用,對于制圖數(shù)據(jù)的表達XML技術(shù)使用比較廣泛,GML繼承了XML的所有特點,因此將其融合是圖庫一體化數(shù)據(jù)存儲表達的優(yōu)良選擇。
由于地理數(shù)據(jù)比較完備,選用地理庫為核心的數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù)庫,便于空間分析應(yīng)用;制圖數(shù)據(jù)是以實現(xiàn)地圖配圖的符號表達規(guī)則的數(shù)據(jù),通過提取制圖數(shù)據(jù)即可完成制圖輸出。傳統(tǒng)圖庫一體化基礎(chǔ)數(shù)據(jù)和制圖數(shù)據(jù)存儲是分離的,為了減少數(shù)據(jù)重復(fù)采集,實現(xiàn)圖庫數(shù)據(jù)的一體化存儲、管理和應(yīng)用,筆者采用GML技術(shù)實現(xiàn)基礎(chǔ)地理數(shù)據(jù)的存儲,將GML文檔作為基礎(chǔ)地理數(shù)據(jù)庫,同時制圖數(shù)據(jù)的存儲和管理同樣用GML技術(shù)并存入GML文檔,將二者的存儲集于一體,便于數(shù)據(jù)間的調(diào)用共享,減少了數(shù)據(jù)的采集次數(shù),提高了數(shù)據(jù)的重復(fù)利用率,同時節(jié)約存儲空間,實現(xiàn)基礎(chǔ)地理數(shù)據(jù)和制圖數(shù)據(jù)的一體化存儲與管理。
1GML數(shù)據(jù)分析
1.1GML概述XML可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言,是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。由于 XML具有結(jié)構(gòu)性、可擴展性、自描述性、簡單性等諸多特征,使之表示數(shù)據(jù)的方式真正做到了獨立于應(yīng)用系統(tǒng),不受任何特殊的軟件或者硬件平臺限制,并且這些數(shù)據(jù)能重復(fù)使用,簡單易懂。這些優(yōu)勢使 XML 成為存儲獨立于特定系統(tǒng)平臺的地圖符號描述信息的技術(shù)方案。XML被人們廣泛應(yīng)用,在制圖領(lǐng)域也不例外。GML即地理標(biāo)識語言,是由OGC(開放式地理信息系統(tǒng)協(xié)會)于1999年提出基于XML的地理信息傳輸和存儲的編碼規(guī)范,具有XML所具有的一切優(yōu)點,同時GML還有自身一些基本特征,能夠表示地理空間對象的空間數(shù)據(jù)和非空間屬性數(shù)據(jù)。GML具有純文本、自我描述、中立于任何軟件廠商、可以在Web瀏覽器中顯示、可以很容易與非空間數(shù)據(jù)集成等特征,為空間數(shù)據(jù)的建模、存儲和處理提供了標(biāo)準(zhǔn)框架[3]。
總體上看,GML具有以下優(yōu)點:基于文本的地理信息表示;GML數(shù)據(jù)容易與非空間數(shù)據(jù)整合;空間和非空間數(shù)據(jù)的內(nèi)容和表現(xiàn)形式的分離;一種容易理解的空間信息和空間關(guān)聯(lián)的編碼方式;基于XML的地理信息表示,各種XML技術(shù)如 XML 解析、XML Schema、XLink、XPointer、XSL、XML查詢語言等都可應(yīng)用于GML;對地理實體的幾何特征及其屬性進行編碼;封裝了空間參考系統(tǒng);隨著GML開發(fā)工具的增多,它的功能更加完善[3]。因此,GML技術(shù)在地理信息方面應(yīng)用非常受青睞。
1.2GML解析及可視化
1.2.1GML解析。GML文檔是一種XML文檔,XML解析器編程接口方式主要有SAX和DOM兩種標(biāo)準(zhǔn)可供選擇。DOM(文檔對象模型)定義了文檔的邏輯結(jié)構(gòu)以及存取和維護文檔的方法。在 DOM 中,文檔的邏輯結(jié)構(gòu)通常是樹形的,可以對文檔進行隨機存取。編程實現(xiàn)容易缺點在于它對計算機性能和內(nèi)存要求較高。SAX 是用于處理XML事件驅(qū)動的“推”模型,提供了一種對XML文檔進行順序訪問的模式,這是一種快速讀寫 XML 數(shù)據(jù)的方式,內(nèi)存消耗小但必須實現(xiàn)多個事件處理程序,以便能夠處理所有的事件[4]。
1.2.2GML的可視化。根據(jù)系統(tǒng)需要選用相應(yīng)的可視化策略。GML的可視化主要有3種策略:基于柵格圖像的可視化策略;基于組件的可視化策略;基于 SVG 的可視化策略[5]?;跂鸥駡D像的可視化策略最后以柵格地圖(GIF或JPG格式)和靜態(tài)頁面呈現(xiàn)出來;基于組件的可視化策略是通過組件來操作所需的GML數(shù)據(jù),操作的內(nèi)容包括地圖的開窗、放大、漫游以及信息查詢等;基于 SVG 的可視化策略是利用瀏覽器加載SVG插件,查詢GML數(shù)據(jù)庫或GML文檔得到所需GML數(shù)據(jù),然后轉(zhuǎn)換程序加載合適的XSLT樣式單對GML數(shù)據(jù)進行相應(yīng)的處理,生成SVG數(shù)據(jù),SVG插件處理 SVG數(shù)據(jù)并顯示為地圖。
2GML圖庫一體化數(shù)據(jù)存儲研究
2.1GML圖庫一體化模型通過分析制圖數(shù)據(jù)的特點和GIS數(shù)據(jù)的特點,按照圖庫一體化“先空間數(shù)據(jù)生產(chǎn),后地圖出版”的生產(chǎn)流程,提出一種GIS數(shù)據(jù)與制圖數(shù)據(jù)一體化存儲,GIS 數(shù)據(jù)是地理實體在空間上具有目標(biāo)完整性,實體間具有空間拓撲關(guān)系,且擁有完備的屬性信息便于實現(xiàn)GIS分析,對所有需要表現(xiàn)的地物及屬性信息均完整的錄入,將GIS數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù)建庫。而后制定相應(yīng)的配圖方案,從地理數(shù)據(jù)到制圖數(shù)據(jù)轉(zhuǎn)換,調(diào)用符號庫配置相應(yīng)的符號,形成制圖數(shù)據(jù)。用GML技術(shù)將上述基礎(chǔ)數(shù)據(jù)與制圖數(shù)據(jù)即地圖配置數(shù)據(jù)統(tǒng)一存儲和管理,建立GML圖庫一體化模型。
2.2圖庫一體化GML數(shù)據(jù)建庫基于GML的圖庫一體化建庫數(shù)據(jù)可以多源的,任何數(shù)據(jù)只要按GML模式都可以寫入GML文檔進行建庫。由于GIS數(shù)據(jù)完整而豐富,采用GIS數(shù)據(jù)建庫可以很好地實現(xiàn)空間分析及制圖功能。該研究將地理要素的空間信息存儲在以空間數(shù)據(jù)為主流軟件ESRI公司的ArcGIS軟件的Shapefile文件中,根據(jù)Shapefile文件調(diào)用GML核心模式及制定GML應(yīng)用模式,將空間基礎(chǔ)地理數(shù)據(jù)Shapefile 向GML映射的方法。實現(xiàn)Shapefile格式數(shù)據(jù)到GML格式數(shù)據(jù)的轉(zhuǎn)換過程可分為兩個大步驟,一是依據(jù)Shapefile數(shù)據(jù)文檔資料獲取數(shù)據(jù),二是依據(jù)GML標(biāo)準(zhǔn)構(gòu)建GML格式數(shù)據(jù)。運用編程語言來完成從源數(shù)據(jù)(shapefile)到GML數(shù)據(jù)的轉(zhuǎn)換[6],利用GML文檔實現(xiàn)基礎(chǔ)數(shù)據(jù)建庫。
該研究地圖配置同樣選用GML相應(yīng)的模式,從GML地理數(shù)據(jù)庫中提取與制圖數(shù)據(jù)有關(guān)的信息(如地理要素的空間位置坐標(biāo)等)以及分析GML地理要素的屬性,并從地圖符號庫中匹配出表示該地理要素的地圖符號信息。根據(jù)GML繼承XML特點,對地圖的結(jié)構(gòu)、渲染方式等加以表達,運用編程語言實現(xiàn)地圖配置并保存至GML數(shù)據(jù)庫,將二者進行一體化存儲。
3圖庫一體化GML技術(shù)應(yīng)用
通過對圖庫一體化和GML技術(shù)研究,將開發(fā)區(qū)土地利用數(shù)據(jù)作為圖庫一體化基礎(chǔ)數(shù)據(jù),利用GML技術(shù)存儲管理基礎(chǔ)數(shù)據(jù)和制圖數(shù)據(jù),結(jié)合相關(guān)開發(fā)軟件,實現(xiàn)開發(fā)區(qū)土地利用圖庫一體化原型系統(tǒng)。
3.1土地利用數(shù)據(jù)GML存儲以某縣級開發(fā)區(qū)土地利用數(shù)據(jù)為例,對于空間對象中包含的大量信息,包括界址點、界址線、宗地、道路、行政村、企業(yè)等空間數(shù)據(jù)及屬性數(shù)據(jù),調(diào)用相應(yīng)的應(yīng)用模式,從源數(shù)據(jù)到GML數(shù)據(jù)的轉(zhuǎn)換而完成基礎(chǔ)數(shù)據(jù)建庫。地圖配置在微軟.net平臺上提取GML數(shù)據(jù)庫地理信息,調(diào)用地圖符號體系實現(xiàn)地圖配置并保存至GML數(shù)據(jù)庫。地圖配置將符號化信息以層次結(jié)構(gòu)的形式存儲在GML文檔中,包括圖層配置、標(biāo)注配置以及渲染配置等。圖層配置主要包括圖層的數(shù)據(jù)來源、圖層使用的標(biāo)注方案、圖層的分級顯示以及在不同比例尺下的可見性、渲染方案以及圖層透明度等。標(biāo)注配置包括標(biāo)注時所使用的字段,標(biāo)注所使用的字體、字體的大小、角度、顏色等以及對標(biāo)注的位置控制。渲染配置描述兩種渲染方式,唯一值渲染和簡單渲染。運用編程語言(該試驗系統(tǒng)采用C#)來完成土地利用數(shù)據(jù)GML存儲,代碼如下所示:
......
38436900.88319864410939.0125910538437146.0587181
4410689.8826277538437169.78538124410343.8687898438436977.9948539
4410209.41769853
......
......
3.2土地利用數(shù)據(jù)GML數(shù)據(jù)解析與可視化系統(tǒng)生成的GML文檔量不大,不會占用大量內(nèi)存,并且其文檔的邏輯結(jié)構(gòu)通常是樹形的。因此,采用文檔對象模型(DOM)來解析文檔,通過遍歷DOM樹的方法解析GML文檔中的信息,可以很容易地訪問、添加以及修改結(jié)構(gòu)樹中的元素。
ArcGIS Engine具有豐富地圖符號體系,管理并提供制圖數(shù)據(jù)所需的符號,根據(jù)需要可以添加制作符號模塊,豐富符號庫。ArcGIS Engine還將色彩、制圖元素(如圖例、比例尺、比例文本等)等統(tǒng)一放入到符號庫中進行管理。因此,可采用基于ArcGIS Engine提供的可視化控件實現(xiàn)GML可視化,在MapControl控件中進行地圖圖元的繪制,通過調(diào)用相關(guān)的COM組件繪制點、線、面等基本圖元[7]。
3.3土地利用數(shù)據(jù)GML數(shù)據(jù)應(yīng)用系統(tǒng)分析應(yīng)用則調(diào)用GML基礎(chǔ)地理數(shù)據(jù)文檔,通過ArcGIS Engine提供的相應(yīng)組件可以顯示地圖并能進行關(guān)聯(lián)查詢、屬性查詢等。系統(tǒng)制圖應(yīng)用可調(diào)用配置好的GML文檔;亦可根據(jù)制圖需要更新修改符號化配置方案,保存至GML文檔;然后通過ArcGIS Engine提供的地圖整飾功能進行制圖輸出。
4結(jié)語
該研究利用GML技術(shù)對圖庫一體化的研究應(yīng)用,對基礎(chǔ)建庫數(shù)據(jù)和制圖數(shù)據(jù)統(tǒng)一保存到GML文檔中進行一體化存儲,實現(xiàn)了格式的統(tǒng)一,解決了圖庫分離問題。結(jié)合實例通過微軟.net技術(shù)和組件技術(shù)對GML文檔數(shù)據(jù)庫解析和可視化以及制圖輸出,對以后圖庫一體化的建庫方式以及地圖配置和空間分析的效率都有極大的改進和提高,具有較高的推廣價值。
參考文獻
[1] 劉海硯.地圖制圖與空間數(shù)據(jù)生產(chǎn)一體化理論和技術(shù)的研究[D].鄭州:解放軍信息工程大學(xué),2002.
[2] 譚成國.基于ArcGIS Representation 圖庫一體化的設(shè)計與實現(xiàn)[J].城市勘測,2011,12(6):46-49.
[3] OGC.Geography Markup Language(GML)Implementation Specification 3.0[S].OGC,2003.
[4] 常小慧,李宏偉.基于C#的GML文檔解析[J].電腦編程技巧與維護,2004,10(11):32-38.
[5] 劉磊.GML可視化策略的比較研究[J].江西理工大學(xué)學(xué)報,2010,31(5):16-19.
[6] 姚封.基于GML的土地利用數(shù)據(jù)共享研究[D].長沙:中南大學(xué),2010.
[7] 王成.基于ArcEngine的GML可視化的設(shè)計與實現(xiàn)[J].科技風(fēng), 2011(5):40-41.
Storage and Application of Cartography and Database Integration Data Based on GML
WU Song (College of Territorial Resources and Tourism, Anhui Normal University, Wuhu, Anhui 241003)
AbstractTraditional cartography and database integration has the problems of separation and different formats between cartographic data and basic data. Therefore, we established a cartography and database integration model to realize the unified storage, management and application of data. Firstly, GIS data were used as the basic data, corresponding map scheme was established to form mapping data. GML cartography and database integration model was set based on the unified storage and management of basic data and mapping data mentioned above. Then, relevant mapping information was extracted from GML geographical database; properties of GML geographic elements were analyzed. Map symbol information was selected from map symbols bank. Map arrangement was realized by programming language and saved in GML database. Thus, integration storage of mapping data and basic data was achieved. Finally, with the land use data of development zone at county level as a case, GML database was applied. C# programming language was used to complete the GML storage of land use data. GML visualization was realized by the visual controls provided by ArcEngine; mapping output was carried out by the map function provided by ArcGIS Engine, so that the GML data application of cartography and database integration was realized.
Key wordsGML; Cartography and Database Integration; Data storage
收稿日期2015-12-30
作者簡介吳松(1988- ),男,安徽池州人,碩士研究生,研究方向:GIS應(yīng)用。
基金項目安徽省自然科學(xué)基金項目(1508085SQD207)。
中圖分類號S 127
文獻標(biāo)識碼A
文章編號0517-6611(2016)03-342-03