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