DOI:10.19850/j.cnki.2096-4706.2021.09.026
摘? 要:隨著WebGIS技術(shù)在各行業(yè)的快速應(yīng)用,針對(duì)矢量數(shù)據(jù)在前端地圖表達(dá)和服務(wù)發(fā)布過(guò)程中效率較低的問(wèn)題,借助Geotools類庫(kù)以及風(fēng)格化圖層描述語(yǔ)言,通過(guò)矢量數(shù)據(jù)的讀取與屬性解析,基于標(biāo)準(zhǔn)樣式庫(kù)的自適應(yīng)匹配、風(fēng)格化圖層描述文件生成與動(dòng)態(tài)渲染等過(guò)程,實(shí)現(xiàn)了地圖圖層的自適應(yīng)匹配渲染和個(gè)性化配圖,從而大幅度提高了地圖配圖與渲染的效率,可為矢量數(shù)據(jù)快速渲染和可視化表達(dá)提供新的技術(shù)手段。
關(guān)鍵詞:矢量數(shù)據(jù);地圖渲染;數(shù)據(jù)匯交;數(shù)據(jù)共享
中圖分類號(hào):TP391.4? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ?文章編號(hào):2096-4706(2021)09-0100-04
Research on the Adaptive Rendering Technology of Vector Data Based on Geotools
WANG Li
(Shandong Provincial Institute of Land Surveying and Mapping,Jinan? 250102,China)
Abstract:The WebGIS technology have been rapidly used in all kinds of fields and is still in the development stage,aiming at the low efficiency of vector data in the process of front-end map expression and service publishing,with the help of Geotools class library and stylized layer description language,through the vector data reading and attribute analysis,adaptive matching based on standard style library,stylized layer description file generation and dynamic rendering,the paper achieved that adaptive matching rendering and personalized map matching of map layers,which greatly improves the efficiency of map matching and rendering,and provided a new technical means for rapid rendering and visualization of vector data.
Keywords:vector data;map rendering;data exchange;data sharing
0? 引? 言
隨著人類空間數(shù)據(jù)獲取能力的不斷提升,以自然資源專題數(shù)據(jù)為代表的矢量數(shù)據(jù)愈來(lái)愈豐富,若要實(shí)現(xiàn)這些專題數(shù)據(jù)的共享訪問(wèn),則必須基于統(tǒng)一的分類標(biāo)準(zhǔn)和渲染風(fēng)格進(jìn)行地圖的動(dòng)態(tài)可視化表達(dá)和快速地圖服務(wù)發(fā)布[1,2],鑒于目前大多數(shù)的前端地圖服務(wù)的渲染和發(fā)布都是基于人機(jī)交互模式,因此研究一種矢量數(shù)據(jù)的自適應(yīng)渲染和快速服務(wù)發(fā)布技術(shù)已成為迫切的需求。
關(guān)于矢量數(shù)據(jù)的渲染,黃若思等人研究了基于幾何的WebGL矢量數(shù)據(jù)三維渲染技術(shù),提出了在水平方向和垂直方向上進(jìn)行矢量數(shù)據(jù)渲染優(yōu)化的方法[3];薛純?cè)诜治隽碎_(kāi)源引擎Mapnik的渲染機(jī)制的基礎(chǔ)上,通過(guò)搭建和改造Hadoop實(shí)驗(yàn)集群,實(shí)現(xiàn)了矢量數(shù)據(jù)的分布式渲染,提高了渲染效率[4];何必仕等人針對(duì)矢量數(shù)據(jù)在手持設(shè)備上渲染速度慢的問(wèn)題,基于OpenVG進(jìn)行了矢量圖渲染加速算法的研究,從路徑柵格化和路徑分解算法方面進(jìn)行了優(yōu)化,取得了較好的應(yīng)用效果[5];慕旭等人針對(duì)網(wǎng)絡(luò)環(huán)境下三維GIS交互式渲染中存在的問(wèn)題,利用WebGL的優(yōu)勢(shì),通過(guò)引入延遲渲染技術(shù),提出了一種基于屏幕空間的三維地形矢量線符號(hào)渲染方法,改善了多尺度下矢量數(shù)據(jù)的疊加顯示效果[6];曹存相等人則提出了一種基于WebGL的矢量瓦片渲染優(yōu)化方法,通過(guò)有效組織矢量瓦片的屬性信息及空間信息,加快了網(wǎng)絡(luò)傳輸及前端快速渲染解析效率,從而提高了矢量瓦片數(shù)據(jù)交互渲染的速度[7]。
目前GeoServer選用風(fēng)格化圖層描述語(yǔ)言(Styled Layer Descriptor,SLD)進(jìn)行矢量地圖數(shù)據(jù)的渲染,SLD允許采用更加靈活的方式來(lái)進(jìn)行地圖的渲染[8]。為此本文通過(guò)借助SLD和Geotools技術(shù),通過(guò)構(gòu)建標(biāo)準(zhǔn)樣式庫(kù),進(jìn)行了矢量專題數(shù)據(jù)自適應(yīng)渲染功能開(kāi)發(fā),從而提升了地圖服務(wù)發(fā)布及共享訪問(wèn)效率。
1? 技術(shù)基礎(chǔ)
1.1? SLD樣式描述語(yǔ)言
SLD是OGC標(biāo)準(zhǔn)體系下的樣式描述語(yǔ)言,其通過(guò)與地理信息數(shù)據(jù)相結(jié)合實(shí)現(xiàn)地圖渲染功能[9]。SLD規(guī)范是采用XML定義地圖顯示樣式,通過(guò)自定義SLD可以進(jìn)行過(guò)濾器的設(shè)置,增刪圖例等操作,其描述了如何在WMS規(guī)范的基礎(chǔ)上進(jìn)行擴(kuò)展使之支持用戶對(duì)要素?cái)?shù)據(jù)進(jìn)行自定義的符號(hào)化顯示,能夠被任何一種支持WMS的服務(wù)器軟件所支持。SLD通過(guò)XML元素進(jìn)行樣式的表達(dá),其根元素主要包含
1.2? Geotools類庫(kù)
Geotools是一個(gè)基于OGC標(biāo)準(zhǔn)的開(kāi)源的Java類庫(kù),通過(guò)Geotools可以進(jìn)行地理信息系統(tǒng)平臺(tái)的構(gòu)建,實(shí)現(xiàn)相應(yīng)空間數(shù)據(jù)的處理和分析功能。uDig、GeoServer等開(kāi)源軟件都是以Geotools為基礎(chǔ)研發(fā)而成[10]。Geotools按照功能劃分模塊,結(jié)構(gòu)清晰,使開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中實(shí)現(xiàn)更輕松的擴(kuò)展,可以根據(jù)源代碼進(jìn)行功能定制,同時(shí)不需要服務(wù)器即可實(shí)現(xiàn)地理信息數(shù)據(jù)的交互顯示,Geotools支持多種地理信息數(shù)據(jù)的訪問(wèn)能力,支持多種格式的矢量、柵格數(shù)據(jù)的讀取,同時(shí)能夠?qū)ostgreSQL等空間數(shù)據(jù)庫(kù)進(jìn)行讀取;支持多種地圖投影,能夠進(jìn)行地圖投影轉(zhuǎn)換;支持對(duì)電子地圖的渲染;具有強(qiáng)大的空間分析能力。
本文選用Geotools作為地圖渲染的主要組件,用于讀取空間數(shù)據(jù)的屬性值,對(duì)矢量專題數(shù)據(jù)進(jìn)行渲染,結(jié)合Servlet將數(shù)據(jù)渲染結(jié)果實(shí)時(shí)傳回前端進(jìn)行展示,并基于Geotools生成矢量專題數(shù)據(jù)的快視圖。
2? 矢量數(shù)據(jù)的自適應(yīng)地圖渲染
所謂自適應(yīng)渲染過(guò)程就是基于數(shù)據(jù)字典與標(biāo)準(zhǔn)樣式庫(kù),依據(jù)矢量數(shù)據(jù)的分類屬性,通過(guò)對(duì)標(biāo)準(zhǔn)式樣的自動(dòng)對(duì)應(yīng)選取,在瀏覽器端實(shí)現(xiàn)地圖圖層的自適應(yīng)渲染與可視化表達(dá)。為此在基礎(chǔ)地理數(shù)據(jù)分類標(biāo)準(zhǔn)體系的基礎(chǔ)上,首先需建立針對(duì)各矢量專題數(shù)據(jù)的樣式標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),以此作為自適應(yīng)渲染的前提。
2.1? 標(biāo)準(zhǔn)式樣庫(kù)構(gòu)建
針對(duì)點(diǎn)狀要素?cái)?shù)據(jù),如居民點(diǎn)、學(xué)校、醫(yī)院、公交站等,通過(guò)構(gòu)建符號(hào)庫(kù)的形式存儲(chǔ)點(diǎn)符號(hào);針對(duì)線要素?cái)?shù)據(jù),如道路、河流等,主要是通過(guò)構(gòu)建線型庫(kù)進(jìn)行線型樣式的設(shè)置;針對(duì)面要素?cái)?shù)據(jù),如土地資源分類專題,主要通過(guò)土地分類屬性構(gòu)建標(biāo)準(zhǔn)填充樣式數(shù)據(jù)表,具體如表1所示。
2.2? 矢量數(shù)據(jù)自動(dòng)渲染過(guò)程設(shè)計(jì)
為實(shí)現(xiàn)矢量數(shù)據(jù)的自動(dòng)化渲染,設(shè)計(jì)了自適應(yīng)地圖渲染流程,主要包括了:矢量數(shù)據(jù)的讀取與屬性解析、基于標(biāo)準(zhǔn)樣式庫(kù)的自適應(yīng)匹配、SLD文件生成與動(dòng)態(tài)渲染等過(guò)程。具體地圖自適應(yīng)渲染過(guò)程如圖2所示。
2.2.1? 矢量數(shù)據(jù)讀取與屬性解析
本文所采用的實(shí)驗(yàn)數(shù)據(jù)為shapefile格式的矢量數(shù)據(jù),在進(jìn)行地圖服務(wù)發(fā)布時(shí),通過(guò)瀏覽器端的頁(yè)面鏈接本地矢量數(shù)據(jù)文件,并通過(guò)AJAX技術(shù)將數(shù)據(jù)傳送至后臺(tái)服務(wù)端,后臺(tái)服務(wù)端使用Geotools類庫(kù)進(jìn)行屬性數(shù)據(jù)的解析與要素重分類。
2.2.2? 標(biāo)準(zhǔn)式樣的自適應(yīng)匹配
要素分類完成后,需要根據(jù)要素的分類屬性,在標(biāo)準(zhǔn)樣式庫(kù)中進(jìn)行鍵值對(duì)自適應(yīng)匹配。若匹配成功,則選定使用標(biāo)準(zhǔn)式樣庫(kù)中的式樣;若匹配不成功,則借助前端Element組件庫(kù)的顏色選擇器進(jìn)行對(duì)應(yīng)填充色的調(diào)整,從而實(shí)現(xiàn)個(gè)性化配圖。
2.2.3? SLD樣式文件生成及地圖自動(dòng)渲染
在要素的自適應(yīng)渲染式樣選擇完成后,可基于DOM4j XML API自動(dòng)生成SLD樣式文件,并使用Servlet進(jìn)行地圖的轉(zhuǎn)發(fā),并在前端進(jìn)行地圖的實(shí)時(shí)渲染展示,具體不同要素的SLD渲染結(jié)果如圖3所示。
3? 矢量專題數(shù)據(jù)的快視圖生成
為了便于后期進(jìn)行矢量專題數(shù)據(jù)的共享訪問(wèn)和地圖預(yù)覽,需要基于Geotools庫(kù)實(shí)現(xiàn)矢量專題數(shù)據(jù)的快視圖生成,并存儲(chǔ)至元數(shù)據(jù)庫(kù),主要步驟包括:矢量數(shù)據(jù)以及渲染式樣文件讀取、快視圖生成與存儲(chǔ)等。
本文以shapefile格式的矢量數(shù)據(jù)為例進(jìn)行試驗(yàn),首先通過(guò)獲取shapefile文件與對(duì)應(yīng)SLD文件的存儲(chǔ)路徑,使用Geotools庫(kù)讀取shapefile文件,通過(guò)設(shè)置中文編碼格式,實(shí)現(xiàn)中文屬性讀取,并同時(shí)進(jìn)行SLD樣式文件的讀取和解析,進(jìn)一步通過(guò)矢量數(shù)據(jù)的空間范圍和自適應(yīng)選擇的要素式樣,進(jìn)行快視圖的內(nèi)存生成,并將結(jié)果輸出至指定位置進(jìn)行存儲(chǔ),具體基于原始矢量文件生成的快視圖如圖4所示。
4? 結(jié)? 論
目前進(jìn)行矢量數(shù)據(jù)的地圖發(fā)布大多是運(yùn)用成熟的軟件通過(guò)人機(jī)交互的方式進(jìn)行,由于這種傳統(tǒng)方式能夠根據(jù)個(gè)人的喜好進(jìn)行矢量數(shù)據(jù)的個(gè)性化地圖渲染,針對(duì)特殊數(shù)據(jù)量不大的應(yīng)用場(chǎng)景比較有利,但針對(duì)定期進(jìn)行矢量數(shù)據(jù)更新的場(chǎng)景則比較困難。為了解決該問(wèn)題,本文充分利用Geotools類庫(kù)對(duì)地理信息數(shù)據(jù)的強(qiáng)大支撐能力和SLD樣式描述語(yǔ)言靈活的地圖圖層渲染能力,通過(guò)基于設(shè)置的標(biāo)準(zhǔn)樣式庫(kù)的自適應(yīng)匹配、SLD文件生成與動(dòng)態(tài)渲染等過(guò)程,實(shí)現(xiàn)了矢量數(shù)據(jù)的動(dòng)態(tài)地圖渲染,結(jié)合Servlet將數(shù)據(jù)渲染結(jié)果實(shí)時(shí)傳回前端進(jìn)行展示,并進(jìn)一步基于Geotools生成了矢量專題數(shù)據(jù)的快視圖。本文研究的方法可為矢量圖層數(shù)據(jù)的自動(dòng)服務(wù)發(fā)布和數(shù)據(jù)共享提供一定的技術(shù)參考。
參考文獻(xiàn):
[1] 黃賢金.自然資源統(tǒng)一管理:新時(shí)代、新特征、新趨向 [J].資源科學(xué),2019,41(1):1-8.
[2] 王寶鋒.自然資源統(tǒng)一管理背景下調(diào)查工作思路研究 [J].農(nóng)村經(jīng)濟(jì)與科技,2020,31(16):13-14.
[3] 黃若思,李傳榮,馮磊,等.基于幾何的WebGL矢量數(shù)據(jù)三維渲染技術(shù)研究 [J].遙感技術(shù)與應(yīng)用,2014,29(3):463-468.
[4] 薛純.基于Hadoop和Mapnik的矢量數(shù)據(jù)渲染技術(shù)研究 [D].蘭州:蘭州交通大學(xué),2015.
[5] 何必仕,萬(wàn)健,徐小良.基于OpenVG矢量圖渲染加速研究 [J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(1):111-113.
[6] 慕旭,霍亮,王金地,等.一種矢量數(shù)據(jù)三維渲染優(yōu)化方法 [J].北京建筑大學(xué)學(xué)報(bào),2018,34(4):28-33.
[7] 曹存相,慕旭,秦高雅,等.基于WebGL的矢量瓦片渲染優(yōu)化方法研究 [J].河北地質(zhì)大學(xué)學(xué)報(bào),2019,42(2):38-41+55.
[8] 廖義杰.基于XML的WebGIS符號(hào)設(shè)計(jì)與管理及其在交互制圖中應(yīng)用 [D].武漢:武漢大學(xué),2005.
[9] 周玉科,周成虎,馬廷,等.數(shù)字地圖要素樣式結(jié)構(gòu)化存儲(chǔ)表達(dá)研究與實(shí)現(xiàn) [J].地理與地理信息科學(xué),2012,28(3):7-10.
[10] 趙衛(wèi)平,李曉靜.基于GeoTools的地圖服務(wù)快速發(fā)布系統(tǒng)研究 [J].測(cè)繪與空間地理信息,2017,40(7):137-138+142.
作者簡(jiǎn)介:王麗(1969.10—),女,漢族,安徽壽縣人,高級(jí)工程師,本科,研究方向:測(cè)繪工程。
收稿日期:2021-04-09
基金項(xiàng)目:山東省重大科技創(chuàng)新工程項(xiàng)目(2019JZZY020103)