吳 松
(安徽師范大學國土資源與旅游學院,安徽蕪湖 241003)
?
基于GML的圖庫一體化數據存儲及應用
吳 松
(安徽師范大學國土資源與旅游學院,安徽蕪湖 241003)
摘要為解決傳統的圖庫一體化中制圖數據與基礎數據分離且格式不統一問題,引入能夠表示地理空間對象的空間數據和非空間屬性數據GML(地理標識語言)文檔,建立圖庫一體化模型,實現數據統一存儲管理和應用。首先將GIS數據作為基礎數據建庫,制定相應的配圖方案形成制圖數據,用GML技術將上述基礎數據與制圖數據即地圖配置數據統一存儲和管理,建立GML圖庫一體化模型;然后從GML地理數據庫中提取與制圖數據有關的信息并分析GML地理要素的屬性,從地圖符號庫中匹配出表示該地理要素的地圖符號信息,運用編程語言實現地圖配置并保存至GML數據庫,實現制圖數據與基礎數據的一體化存儲。以某縣級開發區土地利用數據為例對GML數據庫的應用進行分析,運用C#編程語言完成土地利用數據的GML存儲,采用ArcEngine提供的可視化控件實現GML可視化,通過ArcGIS Engine提供的地圖整飾功能進行制圖輸出,實現圖庫一體化GML數據的應用。
關鍵詞GML;圖庫一體化;數據存儲;應用
隨著計算機技術的廣泛應用,目前地圖生產的全部過程都可以在計算機上實現,數字制圖軟件對數據的存儲和管理以及生產數字地圖和紙質地圖起到了關鍵作用[1]。但現在制圖軟件眾多且數據格式不統一,建庫數據表示的側重點不一樣,難以實現不同平臺的數據共享,基礎數據和制圖規則存儲分開,不能統一管理,GIS應用與制圖應用也不能同時兼顧。目前有關軟件可分為3類:①通用矢量圖形軟件,包括CorelDraw、Photoshop;制圖類軟件,包括MapGIS、AutoCAD、MicroStation;GIS 類軟件,包括MapInfo、ArcGIS。雖然數字制圖軟件數量眾多、各有特色,但這些軟件要么是面向傳統圖形應用,不能進行空間分析;要么是側重空間數據的采集和分析應用,不能制出完美的地圖。因此,要實現兩者的功能必須建立兩套數據庫,但它們不能同時對制圖數據和空間數據進行存儲,無法將兩類信息進行統一管理。要想利用一套數據庫,既能實現空間分析和制圖應用,又能將制圖數據與空間數據存儲在一起,可通過基于GML的圖庫一體化來實現。
圖庫一體化是一個涉及空間數據采集生產、存儲、管理、制圖輸出的全過程的完整的技術解決方案體系,包括數據生產標準、工藝流程、數據庫結構的制定以及支持工藝流程各階段數據編輯、處理的軟件系統[2]。目前國內外學者對圖庫一體化作了廣泛地研究,主要是對數據存儲管理、制圖輸出和生產流程研究,也都達到了一定的效果。他們在圖庫一體化研究思想上基本相似,在數據建庫與制圖方法上各有不同,能夠解決一些制圖與分析的需要,但是存在所選建庫數據源不夠完備、數據表達的范圍有限且存儲復雜、僅適合本系統且通用性差等不足,在制圖規則表達和數據存儲上也顯得復雜,且制圖數據與基礎數據不能統一存儲,多數制圖規則只能配置同一比例尺下的地圖數據,一套配圖方案只能顯示一張地圖。雖然GML技術改進了數據存儲方式,但通常都是對數據分層存儲,一個GML文檔僅代表一個圖層,不能將圖層文檔合并存儲。而且GML并沒有涉及制圖數據應用,對于制圖數據的表達XML技術使用比較廣泛,GML繼承了XML的所有特點,因此將其融合是圖庫一體化數據存儲表達的優良選擇。
由于地理數據比較完備,選用地理庫為核心的數據作為基礎數據庫,便于空間分析應用;制圖數據是以實現地圖配圖的符號表達規則的數據,通過提取制圖數據即可完成制圖輸出。傳統圖庫一體化基礎數據和制圖數據存儲是分離的,為了減少數據重復采集,實現圖庫數據的一體化存儲、管理和應用,筆者采用GML技術實現基礎地理數據的存儲,將GML文檔作為基礎地理數據庫,同時制圖數據的存儲和管理同樣用GML技術并存入GML文檔,將二者的存儲集于一體,便于數據間的調用共享,減少了數據的采集次數,提高了數據的重復利用率,同時節約存儲空間,實現基礎地理數據和制圖數據的一體化存儲與管理。
1GML數據分析
1.1GML概述XML可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言,是當今處理分布式結構信息的有效工具。由于 XML具有結構性、可擴展性、自描述性、簡單性等諸多特征,使之表示數據的方式真正做到了獨立于應用系統,不受任何特殊的軟件或者硬件平臺限制,并且這些數據能重復使用,簡單易懂。這些優勢使 XML 成為存儲獨立于特定系統平臺的地圖符號描述信息的技術方案。XML被人們廣泛應用,在制圖領域也不例外。GML即地理標識語言,是由OGC(開放式地理信息系統協會)于1999年提出基于XML的地理信息傳輸和存儲的編碼規范,具有XML所具有的一切優點,同時GML還有自身一些基本特征,能夠表示地理空間對象的空間數據和非空間屬性數據。GML具有純文本、自我描述、中立于任何軟件廠商、可以在Web瀏覽器中顯示、可以很容易與非空間數據集成等特征,為空間數據的建模、存儲和處理提供了標準框架[3]。
總體上看,GML具有以下優點:基于文本的地理信息表示;GML數據容易與非空間數據整合;空間和非空間數據的內容和表現形式的分離;一種容易理解的空間信息和空間關聯的編碼方式;基于XML的地理信息表示,各種XML技術如 XML 解析、XML Schema、XLink、XPointer、XSL、XML查詢語言等都可應用于GML;對地理實體的幾何特征及其屬性進行編碼;封裝了空間參考系統;隨著GML開發工具的增多,它的功能更加完善[3]。因此,GML技術在地理信息方面應用非常受青睞。
1.2GML解析及可視化
1.2.1GML解析。GML文檔是一種XML文檔,XML解析器編程接口方式主要有SAX和DOM兩種標準可供選擇。DOM(文檔對象模型)定義了文檔的邏輯結構以及存取和維護文檔的方法。在 DOM 中,文檔的邏輯結構通常是樹形的,可以對文檔進行隨機存取。編程實現容易缺點在于它對計算機性能和內存要求較高。SAX 是用于處理XML事件驅動的“推”模型,提供了一種對XML文檔進行順序訪問的模式,這是一種快速讀寫 XML 數據的方式,內存消耗小但必須實現多個事件處理程序,以便能夠處理所有的事件[4]。
1.2.2GML的可視化。根據系統需要選用相應的可視化策略。GML的可視化主要有3種策略:基于柵格圖像的可視化策略;基于組件的可視化策略;基于 SVG 的可視化策略[5]。基于柵格圖像的可視化策略最后以柵格地圖(GIF或JPG格式)和靜態頁面呈現出來;基于組件的可視化策略是通過組件來操作所需的GML數據,操作的內容包括地圖的開窗、放大、漫游以及信息查詢等;基于 SVG 的可視化策略是利用瀏覽器加載SVG插件,查詢GML數據庫或GML文檔得到所需GML數據,然后轉換程序加載合適的XSLT樣式單對GML數據進行相應的處理,生成SVG數據,SVG插件處理 SVG數據并顯示為地圖。
2GML圖庫一體化數據存儲研究
2.1GML圖庫一體化模型通過分析制圖數據的特點和GIS數據的特點,按照圖庫一體化“先空間數據生產,后地圖出版”的生產流程,提出一種GIS數據與制圖數據一體化存儲,GIS 數據是地理實體在空間上具有目標完整性,實體間具有空間拓撲關系,且擁有完備的屬性信息便于實現GIS分析,對所有需要表現的地物及屬性信息均完整的錄入,將GIS數據作為基礎數據建庫。而后制定相應的配圖方案,從地理數據到制圖數據轉換,調用符號庫配置相應的符號,形成制圖數據。用GML技術將上述基礎數據與制圖數據即地圖配置數據統一存儲和管理,建立GML圖庫一體化模型。
2.2圖庫一體化GML數據建庫基于GML的圖庫一體化建庫數據可以多源的,任何數據只要按GML模式都可以寫入GML文檔進行建庫。由于GIS數據完整而豐富,采用GIS數據建庫可以很好地實現空間分析及制圖功能。該研究將地理要素的空間信息存儲在以空間數據為主流軟件ESRI公司的ArcGIS軟件的Shapefile文件中,根據Shapefile文件調用GML核心模式及制定GML應用模式,將空間基礎地理數據Shapefile 向GML映射的方法。實現Shapefile格式數據到GML格式數據的轉換過程可分為兩個大步驟,一是依據Shapefile數據文檔資料獲取數據,二是依據GML標準構建GML格式數據。運用編程語言來完成從源數據(shapefile)到GML數據的轉換[6],利用GML文檔實現基礎數據建庫。
該研究地圖配置同樣選用GML相應的模式,從GML地理數據庫中提取與制圖數據有關的信息(如地理要素的空間位置坐標等)以及分析GML地理要素的屬性,并從地圖符號庫中匹配出表示該地理要素的地圖符號信息。根據GML繼承XML特點,對地圖的結構、渲染方式等加以表達,運用編程語言實現地圖配置并保存至GML數據庫,將二者進行一體化存儲。
3圖庫一體化GML技術應用
通過對圖庫一體化和GML技術研究,將開發區土地利用數據作為圖庫一體化基礎數據,利用GML技術存儲管理基礎數據和制圖數據,結合相關開發軟件,實現開發區土地利用圖庫一體化原型系統。
3.1土地利用數據GML存儲以某縣級開發區土地利用數據為例,對于空間對象中包含的大量信息,包括界址點、界址線、宗地、道路、行政村、企業等空間數據及屬性數據,調用相應的應用模式,從源數據到GML數據的轉換而完成基礎數據建庫。地圖配置在微軟.net平臺上提取GML數據庫地理信息,調用地圖符號體系實現地圖配置并保存至GML數據庫。地圖配置將符號化信息以層次結構的形式存儲在GML文檔中,包括圖層配置、標注配置以及渲染配置等。圖層配置主要包括圖層的數據來源、圖層使用的標注方案、圖層的分級顯示以及在不同比例尺下的可見性、渲染方案以及圖層透明度等。標注配置包括標注時所使用的字段,標注所使用的字體、字體的大小、角度、顏色等以及對標注的位置控制。渲染配置描述兩種渲染方式,唯一值渲染和簡單渲染。運用編程語言(該試驗系統采用C#)來完成土地利用數據GML存儲,代碼如下所示:
......
38436900.88319864410939.0125910538437146.0587181
4410689.8826277538437169.78538124410343.8687898438436977.9948539
4410209.41769853
......
......
3.2土地利用數據GML數據解析與可視化系統生成的GML文檔量不大,不會占用大量內存,并且其文檔的邏輯結構通常是樹形的。因此,采用文檔對象模型(DOM)來解析文檔,通過遍歷DOM樹的方法解析GML文檔中的信息,可以很容易地訪問、添加以及修改結構樹中的元素。
ArcGIS Engine具有豐富地圖符號體系,管理并提供制圖數據所需的符號,根據需要可以添加制作符號模塊,豐富符號庫。ArcGIS Engine還將色彩、制圖元素(如圖例、比例尺、比例文本等)等統一放入到符號庫中進行管理。因此,可采用基于ArcGIS Engine提供的可視化控件實現GML可視化,在MapControl控件中進行地圖圖元的繪制,通過調用相關的COM組件繪制點、線、面等基本圖元[7]。
3.3土地利用數據GML數據應用系統分析應用則調用GML基礎地理數據文檔,通過ArcGIS Engine提供的相應組件可以顯示地圖并能進行關聯查詢、屬性查詢等。系統制圖應用可調用配置好的GML文檔;亦可根據制圖需要更新修改符號化配置方案,保存至GML文檔;然后通過ArcGIS Engine提供的地圖整飾功能進行制圖輸出。
4結語
該研究利用GML技術對圖庫一體化的研究應用,對基礎建庫數據和制圖數據統一保存到GML文檔中進行一體化存儲,實現了格式的統一,解決了圖庫分離問題。結合實例通過微軟.net技術和組件技術對GML文檔數據庫解析和可視化以及制圖輸出,對以后圖庫一體化的建庫方式以及地圖配置和空間分析的效率都有極大的改進和提高,具有較高的推廣價值。
參考文獻
[1] 劉海硯.地圖制圖與空間數據生產一體化理論和技術的研究[D].鄭州:解放軍信息工程大學,2002.
[2] 譚成國.基于ArcGIS Representation 圖庫一體化的設計與實現[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].江西理工大學學報,2010,31(5):16-19.
[6] 姚封.基于GML的土地利用數據共享研究[D].長沙:中南大學,2010.
[7] 王成.基于ArcEngine的GML可視化的設計與實現[J].科技風, 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應用。
基金項目安徽省自然科學基金項目(1508085SQD207)。
中圖分類號S 127
文獻標識碼A
文章編號0517-6611(2016)03-342-03