舒 超,陳 犖,李建強(qiáng),李 軍
(1.國(guó)防科學(xué)技術(shù)大學(xué) 電子科學(xué)與工程學(xué)院, 湖南 長(zhǎng)沙 410073;2.中國(guó)地質(zhì)調(diào)查局 發(fā)展研究中心,北京 100032)
基于地圖制圖腳本的地質(zhì)圖發(fā)布系統(tǒng)
舒 超1,陳 犖1,李建強(qiáng)2,李 軍1
(1.國(guó)防科學(xué)技術(shù)大學(xué) 電子科學(xué)與工程學(xué)院, 湖南 長(zhǎng)沙 410073;2.中國(guó)地質(zhì)調(diào)查局 發(fā)展研究中心,北京 100032)

現(xiàn)有的數(shù)字化地質(zhì)圖,多以MapGIS(wl/wt/wp)數(shù)據(jù)格式存儲(chǔ),無(wú)法為相關(guān)單位、個(gè)人提供較好的數(shù)據(jù)服務(wù),給業(yè)內(nèi)數(shù)據(jù)共享帶來(lái)了障礙;同時(shí),傳統(tǒng)GIS軟件也無(wú)法滿足復(fù)雜地質(zhì)圖高效繪制的需求。基于此,提出了一種基于地圖制圖腳本的地質(zhì)圖發(fā)布方法,通過(guò)對(duì)原始電子地質(zhì)圖信息的解析,自動(dòng)生成制圖腳本,實(shí)現(xiàn)高效的Web端地質(zhì)圖成圖。
制圖腳本;地質(zhì)圖;WebGIS;高效繪制;高性能地理計(jì)算平臺(tái)
隨著互聯(lián)網(wǎng)技術(shù)以及大數(shù)據(jù)存儲(chǔ)、快速處理技術(shù)的不斷進(jìn)步,面向Web的數(shù)據(jù)服務(wù)發(fā)展迅速[1]。信息技術(shù)正以前所未有的速度改變著人們的生產(chǎn)、生活和思維方式[2]。OpenStreetMap開(kāi)放了全球的街道數(shù)據(jù),降低了大眾制圖的門檻;MapBox采用腳本化的地圖制圖模式,探索出網(wǎng)頁(yè)制圖的最佳方式。隨之,腳本化地圖制圖模式在移動(dòng)互聯(lián)網(wǎng)時(shí)代逐漸興起,成為互聯(lián)網(wǎng)GIS中富有前景的技術(shù)之一[3]。
目前,隨著地質(zhì)圖書(shū)館的建立,海量復(fù)雜的地質(zhì)圖數(shù)據(jù)已實(shí)現(xiàn)了初步的電子化,并多以MapGIS(wl/ wp/wt)數(shù)據(jù)格式存儲(chǔ);但由于地質(zhì)圖具有海量、碎片化、非結(jié)構(gòu)化等特性,傳統(tǒng)地圖的繪制方式無(wú)法滿足地質(zhì)圖復(fù)雜的Web端高效繪制需求,使得這些電子化的地質(zhì)圖數(shù)據(jù)并不能很方便地向社會(huì)提供相關(guān)服務(wù)。在傳統(tǒng)GIS無(wú)法實(shí)現(xiàn)地質(zhì)圖在線服務(wù)的當(dāng)下,開(kāi)發(fā)與擴(kuò)展基于腳本化制圖的Web端地質(zhì)圖快速顯示、查詢技術(shù)有著十分重要的意義。
為了實(shí)現(xiàn)地質(zhì)圖的在線發(fā)布,達(dá)到高效繪制復(fù)雜海量地質(zhì)圖的目標(biāo),本文基于地圖制圖腳本模型,設(shè)計(jì)研發(fā)了地質(zhì)圖發(fā)布系統(tǒng)(以下簡(jiǎn)稱發(fā)布系統(tǒng)),并通過(guò)在某B/S架構(gòu)的交互式Web地理計(jì)算平臺(tái)中的應(yīng)用實(shí)例驗(yàn)證了該系統(tǒng)的可行性。
腳本化制圖是指采用腳本描述語(yǔ)言定義地圖中各要素的制圖樣式,并通過(guò)腳本解釋引擎軟件將腳本描述轉(zhuǎn)化為實(shí)際的制圖命令。OGC委員會(huì)在WMS標(biāo)準(zhǔn)中給出了一種地圖樣式描述腳本規(guī)范,即SLD[4]。在該規(guī)范中,地圖被定義為由樣式化圖層按照一定的次序疊加形成的對(duì)象。樣式化圖層是由圖層數(shù)據(jù)和描述該圖層繪制樣式的信息組成的集合。按照這種定義,一 個(gè)地圖可以表示為:

式中,Layer為一個(gè)圖層;Style為其對(duì)應(yīng)的樣式。
開(kāi)源地圖繪制引擎的作者M(jìn)igurski M受SLD思想的啟發(fā),提出將地圖的繪制信息表述為(Layer,Style)元組的集合,并用xml編碼表示;地圖繪制引擎通過(guò)讀取xml文件進(jìn)行地圖繪制。但參考文獻(xiàn)[5]指出,用xml文件描述地圖樣式仍過(guò)于復(fù)雜[6],不利于用戶編寫;若采用CSS語(yǔ)法,樣式的描述可變得更加簡(jiǎn)潔、靈活,因此提出了一種基于層疊樣式表的制圖描述語(yǔ)言——CartoCSS,并被當(dāng)前最大的訂制化在線地圖供應(yīng)商Mapbox所采用。隨后,腳本制圖技術(shù)逐漸發(fā)展,出現(xiàn)了若干基于腳本制圖的系統(tǒng)[7],如采用Geographic Style Sheets腳本的 Cartagem和使用MapCSS腳本的OpenStreetMap。相對(duì)于傳統(tǒng)制圖模型,地圖制圖腳本模型具有互操作性強(qiáng)、易于編寫、可重用、繪制效率高等優(yōu)勢(shì),能極大地提高地圖繪制的靈活度。
為陳述方便,本文給出以下定義:①制圖樣式腳本:CartoCSS腳本文件,Web前端繪制引擎與繪制樣式的關(guān)聯(lián)文件。②制圖工程腳本:地質(zhì)圖圖層組織腳本文件,主要負(fù)責(zé)給Web端提供圖層組織信息。③地質(zhì)圖樣式:地質(zhì)圖要素的顯示特征(顏色、線條粗細(xì)、符號(hào)大小等)。④地質(zhì)圖符號(hào)庫(kù):包括各類地質(zhì)圖符號(hào)、注記的圖片庫(kù)。⑤交換地質(zhì)圖:通過(guò)格式轉(zhuǎn)換和樣式提取,使原始地質(zhì)圖數(shù)據(jù)與樣式相分離,其中數(shù)據(jù)存儲(chǔ)為 shapefile格式,樣式存儲(chǔ)為文本描述格式;用于解決地質(zhì)圖從Windows平臺(tái)向Linux平臺(tái)的轉(zhuǎn)換。⑥矢量樣式文件:地質(zhì)圖矢量要素樣式顯示特征文件,是后綴名為txt的文本文件。⑦注記符號(hào)要素文件:地質(zhì)圖注記符號(hào)要素和注記顯示特征文件,從MapGIS NOTE明碼文件中提取得到,是后綴名為wat的文本文件。矢量樣式文件和注記符號(hào)要素文件都是通過(guò)MapGIS軟件相關(guān)模塊從原始地質(zhì)圖數(shù)據(jù)中提取的。
發(fā)布系統(tǒng)由地質(zhì)圖數(shù)據(jù)解析模塊、地質(zhì)圖樣式轉(zhuǎn)換模塊、資源管理模塊和制圖與發(fā)布模塊組成,架構(gòu)如圖1所示。首先,系統(tǒng)將Windows平臺(tái)下由MapGIS存儲(chǔ)管理的地質(zhì)圖數(shù)據(jù)解析為交換地質(zhì)圖,再將其傳送到基于Linux平臺(tái)的發(fā)布系統(tǒng),實(shí)現(xiàn)對(duì)地質(zhì)圖制圖腳本的生成和最終地質(zhì)圖的發(fā)布。

圖1 發(fā)布系統(tǒng)架構(gòu)
2.1 地質(zhì)圖數(shù)據(jù)解析模塊
該模塊負(fù)責(zé)處理存儲(chǔ)于MapGIS系統(tǒng)中的原始地質(zhì)圖,解析提取其中的要素?cái)?shù)據(jù)和樣式信息,生成能跨平臺(tái)處理的交換地質(zhì)圖中間格式。
原始地質(zhì)矢量要素樣式與矢量要素?cái)?shù)據(jù)相結(jié)合存儲(chǔ)于MapGIS格式數(shù)據(jù)中,因此注記符號(hào)要素文件采用明碼格式儲(chǔ)存在原始數(shù)據(jù)的NOTE文件中。對(duì)地質(zhì)圖數(shù)據(jù)進(jìn)行解析時(shí),不但需要解析矢量要素?cái)?shù)據(jù),還需分別對(duì)矢量要素樣式和注記符號(hào)進(jìn)行提取。
矢量要素?cái)?shù)據(jù)的解析方法為:調(diào)用MapGIS的數(shù)據(jù)交換功能,將MapGIS中存儲(chǔ)的地質(zhì)圖矢量數(shù)據(jù)轉(zhuǎn)換為shapefile格式。矢量要素樣式的解析方法為:利用MapGIS的樣式文本提取模塊,批量剝離矢量要素樣式;再結(jié)合MapGIS數(shù)據(jù)中的矢量樣式提取為交換地質(zhì)圖的文本矢量要素樣式。注記符號(hào)要素的解析方法為:利用MapGIS的明碼解析模塊,從NOTE文件中提取交換地質(zhì)圖的注記符號(hào)要素文本文件。
2.2 地質(zhì)圖樣式轉(zhuǎn)換模塊
該模塊負(fù)責(zé)轉(zhuǎn)換交換地質(zhì)圖的制圖樣式,形成地質(zhì)圖對(duì)應(yīng)的制圖腳本。每個(gè)交換地質(zhì)圖圖層對(duì)應(yīng)一個(gè)樣式文件,每個(gè)樣式文件中包含著圖層中數(shù)以萬(wàn)計(jì)的各矢量要素的顏色、粗細(xì)等,而此類樣式文件并不能被制圖腳本解釋器識(shí)別。制圖腳本語(yǔ)言采用種類似于CSS的制圖樣式語(yǔ)言,樣式定義文件即為CartoCSS語(yǔ)言腳本。而面對(duì)如此龐大的要素樣式,不可能在前端手動(dòng)進(jìn)行樣式編輯,故提出了一種自動(dòng)化樣式解析方法。按照點(diǎn)、線、面樣式文件的文件組織特征,在交換地質(zhì)圖矢量樣式文本文件中提取其顏色、線的粗細(xì)、點(diǎn)的大小等信息;再按照CatroCSS的語(yǔ)法特點(diǎn),形成相應(yīng)的制圖樣式腳本。
2.3 資源管理模塊
該模塊負(fù)責(zé)存儲(chǔ)管理交換地質(zhì)圖中的矢量要素?cái)?shù)據(jù)和制圖樣式中的樣式符號(hào)文件,實(shí)現(xiàn)制圖樣式與圖層的關(guān)聯(lián),為制圖與發(fā)布模塊提供完整的制圖數(shù)據(jù)與腳本化樣式集合。
交換地質(zhì)圖中矢量要素?cái)?shù)據(jù)的存儲(chǔ)管理方法為:將shapefile文件轉(zhuǎn)換為空間數(shù)據(jù)庫(kù)存儲(chǔ),空間數(shù)據(jù)庫(kù)采用PostGIS。交換地質(zhì)圖svg符號(hào)庫(kù)的存儲(chǔ)管理方法為:上傳并將格式轉(zhuǎn)換為png格式。注記符號(hào)文本文件提取、存儲(chǔ)管理方法詳見(jiàn)§3.1。
制圖工程腳本的功能為:記錄地質(zhì)圖包含的種類、各圖層信息以及圖層與樣式腳本對(duì)應(yīng)關(guān)系信息,以便在前端繪制中,繪制引擎能正確組織各圖層以及對(duì)應(yīng)的樣式,完成繪制。在后臺(tái)提取上傳的交換地質(zhì)圖各圖層數(shù)據(jù)的數(shù)據(jù)名、數(shù)據(jù)類型、經(jīng)緯跨度等信息,同時(shí)為各數(shù)據(jù)圖層設(shè)置唯一的識(shí)別主鍵,進(jìn)而生成需要的制圖工程腳本。
2.4 制圖與發(fā)布模塊
該模塊實(shí)現(xiàn)地質(zhì)圖的并行繪制與在線發(fā)布,其主要步驟為:①根據(jù)制圖工程腳本,獲取各地質(zhì)圖繪制所需的各圖層以及對(duì)應(yīng)樣式;②解析各制圖樣式腳本,并驅(qū)動(dòng)地圖繪制引擎進(jìn)行繪制,實(shí)時(shí)顯示。
發(fā)布系統(tǒng)涉及的關(guān)鍵技術(shù)包括:地質(zhì)圖注記快速并行提取技術(shù)、地質(zhì)圖數(shù)據(jù)及符號(hào)庫(kù)快速交換技術(shù)和海量地質(zhì)圖數(shù)據(jù)并行可視化與制圖技術(shù)。
3.1 地質(zhì)圖注記快速并行提取技術(shù)
經(jīng)過(guò)資源管理模塊的初步處理后,地質(zhì)圖注記符號(hào)以文本的形式按照一定的規(guī)則存儲(chǔ)在注記符號(hào)文本文件中,每條注記對(duì)應(yīng)一條文本記錄。一條注記符號(hào)文本動(dòng)輒包含數(shù)百萬(wàn)條文本記錄,且記錄由漢字、英文字母、羅馬字母、復(fù)雜地質(zhì)符號(hào)等組成,使得常規(guī)文本解析提取變得十分困難。
通過(guò)研究復(fù)雜地質(zhì)圖注記符號(hào)文本記錄的規(guī)律,發(fā)布系統(tǒng)將每條文本記錄解析為前端可識(shí)別和顯示的地質(zhì)圖符號(hào),形成png格式的地質(zhì)圖注記符號(hào)庫(kù),并建立顯示位置與圖片的對(duì)應(yīng)關(guān)系,將注記疊加至地質(zhì)圖上。針對(duì)海量的地質(zhì)圖注記對(duì)提取速度的影響,發(fā)布系統(tǒng)提出了一種基于Python多進(jìn)程編程的提取技術(shù)。該技術(shù)先對(duì)文本中相同的注記符號(hào)進(jìn)行聚類,避免相同符號(hào)的重復(fù)提取;再調(diào)用多節(jié)點(diǎn)同時(shí)對(duì)超大文本文件的各部分進(jìn)行讀取、提取和生成png格式地質(zhì)圖注記符號(hào);最后一次性寫入共享文件系統(tǒng)。
3.2 地質(zhì)圖數(shù)據(jù)及符號(hào)庫(kù)快速交換技術(shù)
針對(duì)地質(zhì)圖數(shù)據(jù)及符號(hào)庫(kù)內(nèi)容繁多、制圖規(guī)則復(fù)雜的特點(diǎn),發(fā)布系統(tǒng)在統(tǒng)一框架下分別對(duì)點(diǎn)、線、面等樣式進(jìn)行處理。所有制圖樣式和素材先由MapGIS導(dǎo)出成特定的通用交換格式,如導(dǎo)出數(shù)據(jù)為shapefile,導(dǎo)出樣式為資源文本文件;再利用一套導(dǎo)入工具實(shí)現(xiàn)自動(dòng)化高效導(dǎo)入。具體到點(diǎn)、線、面樣式,又有不同的技術(shù)方案:
1)面樣式。地質(zhì)圖的面樣式主要包括顏色和填充紋理,填充紋理又可定義方向。發(fā)布系統(tǒng)接收從MapGIS導(dǎo)出的位圖或符號(hào)庫(kù)中的填充紋理文件,以及要素關(guān)鍵字段值與資源文件、顏色、紋理方向的對(duì)照表。先將資源文件注冊(cè)到發(fā)布系統(tǒng),再根據(jù)對(duì)照表生成相應(yīng)的“地圖樣式文件”,最后導(dǎo)入系統(tǒng)進(jìn)行繪制。
2)點(diǎn)樣式。地質(zhì)圖的點(diǎn)樣式主要以位圖或矢量圖元表達(dá),可定義大小、顏色和方向。發(fā)布系統(tǒng)接收從MapGIS導(dǎo)出的位圖或交換地質(zhì)圖符號(hào)庫(kù)中的其他圖元,以及要素關(guān)鍵字段值與資源文件、大小、顏色、方向的對(duì)照表,操作與面樣式相同。
3)線樣式。地質(zhì)圖的線樣式主要有顏色、寬度和少量的模型線。發(fā)布系統(tǒng)接收從MapGIS導(dǎo)出的要素關(guān)鍵字段值與顏色、線寬的對(duì)照表,生成“地圖樣式文件”導(dǎo)入發(fā)布系統(tǒng)。對(duì)于無(wú)法用資源文件表達(dá)的少數(shù)模型線,需在發(fā)布系統(tǒng)中重新手工制作。
3.3 海量地質(zhì)圖數(shù)據(jù)并行可視化與制圖技術(shù)
地質(zhì)調(diào)查空間數(shù)據(jù)并行可視化與制圖在服務(wù)上采取與數(shù)據(jù)服務(wù)類似的技術(shù)方案,后端運(yùn)用高質(zhì)量二維繪制引擎Agg和多級(jí)緩存等策略,結(jié)合并行可視化算法,實(shí)現(xiàn)對(duì)地質(zhì)調(diào)查空間數(shù)據(jù)的快速高質(zhì)量并行可視化與制圖。并行可視化擬在兩個(gè)層面上進(jìn)行:對(duì)于數(shù)據(jù)量小、數(shù)目較多的地質(zhì)數(shù)據(jù)集,采用大粒度并行,即根據(jù)數(shù)據(jù)進(jìn)行負(fù)載平衡;對(duì)于數(shù)據(jù)量大、數(shù)目相對(duì)較少的地質(zhì)數(shù)據(jù)集,采用任務(wù)的更細(xì)粒度劃分,充分利用MPI、OpenMP并行方案,加速繪制速度,同時(shí)可采用矢量瓦片、矢量簡(jiǎn)化等方案,降低繪制壓力。其整體架構(gòu)見(jiàn)圖2。

圖2 海量地質(zhì)圖數(shù)據(jù)并行可視化與制圖服務(wù)架構(gòu)
4.1 發(fā)布系統(tǒng)配置環(huán)境
服務(wù)器環(huán)境為:10臺(tái)x86架構(gòu)服務(wù)器組成的高性能計(jì)算集群,含12 TB存儲(chǔ),萬(wàn)兆以太網(wǎng)絡(luò)。客戶端環(huán)境為:Intel Core i5 3.0 GHz,2 GB RAM,Google Chrome V25.0。發(fā)布系統(tǒng)集成于自主研發(fā)的高性能地理計(jì)算平臺(tái)(HiGIS),依托于國(guó)產(chǎn)操作系統(tǒng)——KylinOS。
4.2 發(fā)布系統(tǒng)功能
1)地質(zhì)圖數(shù)據(jù)批量交互上傳。打開(kāi)瀏覽器進(jìn)入HiGIS系統(tǒng)總界面,點(diǎn)擊“上傳交互地質(zhì)圖”控件,選擇需上傳的交互地質(zhì)圖數(shù)據(jù),輸入地質(zhì)圖名稱和描述,點(diǎn)擊上傳。演示效果如圖3所示。后端4個(gè)模塊將對(duì)上傳的地質(zhì)圖數(shù)據(jù)進(jìn)行自動(dòng)化處理,并生成可在瀏覽器端高效可視化的地質(zhì)圖。
2)地質(zhì)圖前端顯示效果。在發(fā)布系統(tǒng)中找到并打開(kāi)新上傳的地質(zhì)圖,實(shí)現(xiàn)流暢的復(fù)雜樣式的地質(zhì)圖縮放、漫游功能,如圖4所示。

圖3 地質(zhì)圖數(shù)據(jù)批量交互上傳

圖4 1∶250萬(wàn)地質(zhì)圖瀏覽
本文提出了基于地圖制圖腳本模型的地質(zhì)圖發(fā)布方法,極大地提高了地質(zhì)圖交互瀏覽的效率;實(shí)現(xiàn)了基于并行技術(shù)的地質(zhì)圖注記快速提取和樣式的高效轉(zhuǎn)換;設(shè)計(jì)了基于高性能集群的面向Web端的地質(zhì)圖發(fā)布系統(tǒng)。今后需對(duì)發(fā)布系統(tǒng)的功能進(jìn)行優(yōu)化:①通過(guò)優(yōu)化并行繪制算法,進(jìn)一步提高繪制效率;②結(jié)合地質(zhì)圖相關(guān)應(yīng)用,添加相關(guān)的分析功能,如添加地質(zhì)災(zāi)害動(dòng)態(tài)預(yù)測(cè)分析功能、模擬地質(zhì)災(zāi)害功能等,進(jìn)一步拓展應(yīng)用功能。
[1]尚武.全國(guó)地質(zhì)資料館信息化建設(shè)與實(shí)踐[C].昆明:國(guó)土資源信息化建設(shè)研討會(huì),2005
[2]李超嶺,李豐丹,李健強(qiáng),等.智能地質(zhì)調(diào)查體系與架構(gòu)[J].中國(guó)地質(zhì),2015,42(4):828-838
[3]蔡苑彬, 劉露,陳犖,等. 基于地圖制圖腳本的交互式圖例動(dòng)態(tài)生成方法[J]. 地理空間信息,2014,12(5):154-157
[4]Consortium O G. Styled Layer Descriptor Profile of the Web Map Service Implementation Specification[S].2007:62-68
[5]Migurski's M. Cascadenik Cascading Sheets of Style for Mapnik [EB/OL]. (2008-04-30)[2016-10-10].http://mike.teczno.com/ notes/cascadenik.html
[6]李超嶺,李健強(qiáng),張宏春,等.智能地質(zhì)調(diào)查大數(shù)據(jù)應(yīng)用體系架構(gòu)與關(guān)鍵技術(shù)[J].地質(zhì)通報(bào),2015,34(7):1 288-1 299
[7]李德仁.論廣義空間信息網(wǎng)格和狹義空間信息網(wǎng)格[J].遙感學(xué)報(bào),2005,9(5):513-520
P283.7
B
1672-4623(2017)07-0049-04
10.3969/j.issn.1672-4623.2017.07.015
舒超,碩士研究生,主要研究方向?yàn)镚IS應(yīng)用和空間數(shù)據(jù)庫(kù)。
本 刊 聲 明
(本刊編輯部)
2016-10-21。
項(xiàng)目來(lái)源:國(guó)家高技術(shù)研究發(fā)展計(jì)劃資助項(xiàng)目(2015AA123901);國(guó)家自然科學(xué)基金資助項(xiàng)目(41301431)。
為適應(yīng)我國(guó)信息化建設(shè),擴(kuò)大本刊及作者知識(shí)信息交流渠道,本刊數(shù)據(jù)已被《中國(guó)核心期刊(遴選)數(shù)據(jù)庫(kù)》《CNKI 中國(guó)期刊全文數(shù)據(jù)庫(kù)》和《中文科技期刊數(shù)據(jù)庫(kù)(全文版)》等收錄。在《地理空間信息》發(fā)表的論文均默認(rèn)將其在著作權(quán)保護(hù)期內(nèi)的復(fù)制權(quán)、發(fā)行權(quán)、匯編權(quán)、翻譯權(quán)以及網(wǎng)絡(luò)傳播權(quán)授權(quán)給《地理空間信息》編輯部,編輯部可將上述權(quán)利轉(zhuǎn)授給第三方使用。作者不再許可他人以任何形式使用該篇論文,但可以在其后續(xù)作品中引用(或翻譯)該論文中部分內(nèi)容或?qū)⑵鋮R編在作者的非期刊類文集中。如不同意,請(qǐng)事先聲明,本刊另作處理。其文章的著作權(quán)使用費(fèi)與本刊稿酬一次性給付(已在收取發(fā)表費(fèi)時(shí)折減和換算為雜志贈(zèng)閱)。