DOI:10.19850/j.cnki.2096-4706.2021.09.026
摘 要:随着WebGIS技术在各行业的快速应用,针对矢量数据在前端地图表达和服务发布过程中效率较低的问题,借助Geotools类库以及风格化图层描述语言,通过矢量数据的读取与属性解析,基于标准样式库的自适应匹配、风格化图层描述文件生成与动态渲染等过程,实现了地图图层的自适应匹配渲染和个性化配图,从而大幅度提高了地图配图与渲染的效率,可为矢量数据快速渲染和可视化表达提供新的技术手段。
关键词:矢量数据;地图渲染;数据汇交;数据共享
中图分类号:TP391.4 文献标识码:A 文章编号: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 引 言
隨着人类空间数据获取能力的不断提升,以自然资源专题数据为代表的矢量数据愈来愈丰富,若要实现这些专题数据的共享访问,则必须基于统一的分类标准和渲染风格进行地图的动态可视化表达和快速地图服务发布[1,2],鉴于目前大多数的前端地图服务的渲染和发布都是基于人机交互模式,因此研究一种矢量数据的自适应渲染和快速服务发布技术已成为迫切的需求。
关于矢量数据的渲染,黄若思等人研究了基于几何的WebGL矢量数据三维渲染技术,提出了在水平方向和垂直方向上进行矢量数据渲染优化的方法[3];薛纯在分析了开源引擎Mapnik的渲染机制的基础上,通过搭建和改造Hadoop实验集群,实现了矢量数据的分布式渲染,提高了渲染效率[4];何必仕等人针对矢量数据在手持设备上渲染速度慢的问题,基于OpenVG进行了矢量图渲染加速算法的研究,从路径栅格化和路径分解算法方面进行了优化,取得了较好的应用效果[5];慕旭等人针对网络环境下三维GIS交互式渲染中存在的问题,利用WebGL的优势,通过引入延迟渲染技术,提出了一种基于屏幕空间的三维地形矢量线符号渲染方法,改善了多尺度下矢量数据的叠加显示效果[6];曹存相等人则提出了一种基于WebGL的矢量瓦片渲染优化方法,通过有效组织矢量瓦片的属性信息及空间信息,加快了网络传输及前端快速渲染解析效率,从而提高了矢量瓦片数据交互渲染的速度[7]。
目前GeoServer选用风格化图层描述语言(Styled Layer Descriptor,SLD)进行矢量地图数据的渲染,SLD允许采用更加灵活的方式来进行地图的渲染[8]。为此本文通过借助SLD和Geotools技术,通过构建标准样式库,进行了矢量专题数据自适应渲染功能开发,从而提升了地图服务发布及共享访问效率。
1 技术基础
1.1 SLD样式描述语言
SLD是OGC标准体系下的样式描述语言,其通过与地理信息数据相结合实现地图渲染功能[9]。SLD规范是采用XML定义地图显示样式,通过自定义SLD可以进行过滤器的设置,增删图例等操作,其描述了如何在WMS规范的基础上进行扩展使之支持用户对要素数据进行自定义的符号化显示,能够被任何一种支持WMS的服务器软件所支持。SLD通过XML元素进行样式的表达,其根元素主要包含
1.2 Geotools类库
Geotools是一个基于OGC标准的开源的Java类库,通过Geotools可以进行地理信息系统平台的构建,实现相应空间数据的处理和分析功能。uDig、GeoServer等开源软件都是以Geotools为基础研发而成[10]。Geotools按照功能划分模块,结构清晰,使开发人员在开发过程中实现更轻松的扩展,可以根据源代码进行功能定制,同时不需要服务器即可实现地理信息数据的交互显示,Geotools支持多种地理信息数据的访问能力,支持多种格式的矢量、栅格数据的读取,同时能够对PostgreSQL等空间数据库进行读取;支持多种地图投影,能够进行地图投影转换;支持对电子地图的渲染;具有强大的空间分析能力。
本文选用Geotools作为地图渲染的主要组件,用于读取空间数据的属性值,对矢量专题数据进行渲染,结合Servlet将数据渲染结果实时传回前端进行展示,并基于Geotools生成矢量专题数据的快视图。
2 矢量数据的自适应地图渲染
所谓自适应渲染过程就是基于数据字典与标准样式库,依据矢量数据的分类属性,通过对标准式样的自动对应选取,在浏览器端实现地图图层的自适应渲染与可视化表达。为此在基础地理数据分类标准体系的基础上,首先需建立针对各矢量专题数据的样式标准数据库,以此作为自适应渲染的前提。
2.1 标准式样库构建
针对点状要素数据,如居民点、学校、医院、公交站等,通过构建符号库的形式存储点符号;针对线要素数据,如道路、河流等,主要是通过构建线型库进行线型样式的设置;针对面要素数据,如土地资源分类专题,主要通过土地分类属性构建标准填充样式数据表,具体如表1所示。
2.2 矢量数据自动渲染过程设计
为实现矢量数据的自动化渲染,设计了自适应地图渲染流程,主要包括了:矢量数据的读取与属性解析、基于标准样式库的自适应匹配、SLD文件生成与动态渲染等过程。具体地图自适应渲染过程如图2所示。
2.2.1 矢量数据读取与属性解析
本文所采用的实验数据为shapefile格式的矢量数据,在进行地图服务发布时,通过浏览器端的页面链接本地矢量数据文件,并通过AJAX技术将数据传送至后台服务端,后台服务端使用Geotools类库进行属性数据的解析与要素重分类。
2.2.2 标准式样的自适应匹配
要素分类完成后,需要根据要素的分类属性,在标准样式库中进行键值对自适应匹配。若匹配成功,则选定使用标准式样库中的式样;若匹配不成功,则借助前端Element组件库的颜色选择器进行对应填充色的调整,从而实现个性化配图。
2.2.3 SLD样式文件生成及地图自动渲染
在要素的自适应渲染式样选择完成后,可基于DOM4j XML API自动生成SLD样式文件,并使用Servlet进行地图的转发,并在前端进行地图的实时渲染展示,具体不同要素的SLD渲染结果如图3所示。
3 矢量专题数据的快视图生成
为了便于后期进行矢量专题数据的共享访问和地图预览,需要基于Geotools库实现矢量专题数据的快视图生成,并存储至元数据库,主要步骤包括:矢量数据以及渲染式样文件读取、快视图生成与存储等。
本文以shapefile格式的矢量数据为例进行试验,首先通过获取shapefile文件与对应SLD文件的存储路径,使用Geotools库读取shapefile文件,通过设置中文編码格式,实现中文属性读取,并同时进行SLD样式文件的读取和解析,进一步通过矢量数据的空间范围和自适应选择的要素式样,进行快视图的内存生成,并将结果输出至指定位置进行存储,具体基于原始矢量文件生成的快视图如图4所示。
4 结 论
目前进行矢量数据的地图发布大多是运用成熟的软件通过人机交互的方式进行,由于这种传统方式能够根据个人的喜好进行矢量数据的个性化地图渲染,针对特殊数据量不大的应用场景比较有利,但针对定期进行矢量数据更新的场景则比较困难。为了解决该问题,本文充分利用Geotools类库对地理信息数据的强大支撑能力和SLD样式描述语言灵活的地图图层渲染能力,通过基于设置的标准样式库的自适应匹配、SLD文件生成与动态渲染等过程,实现了矢量数据的动态地图渲染,结合Servlet将数据渲染结果实时传回前端进行展示,并进一步基于Geotools生成了矢量专题数据的快视图。本文研究的方法可为矢量图层数据的自动服务发布和数据共享提供一定的技术参考。
参考文献:
[1] 黄贤金.自然资源统一管理:新时代、新特征、新趋向 [J].资源科学,2019,41(1):1-8.
[2] 王宝锋.自然资源统一管理背景下调查工作思路研究 [J].农村经济与科技,2020,31(16):13-14.
[3] 黄若思,李传荣,冯磊,等.基于几何的WebGL矢量数据三维渲染技术研究 [J].遥感技术与应用,2014,29(3):463-468.
[4] 薛纯.基于Hadoop和Mapnik的矢量数据渲染技术研究 [D].兰州:兰州交通大学,2015.
[5] 何必仕,万健,徐小良.基于OpenVG矢量图渲染加速研究 [J].计算机应用与软件,2010,27(1):111-113.
[6] 慕旭,霍亮,王金地,等.一种矢量数据三维渲染优化方法 [J].北京建筑大学学报,2018,34(4):28-33.
[7] 曹存相,慕旭,秦高雅,等.基于WebGL的矢量瓦片渲染优化方法研究 [J].河北地质大学学报,2019,42(2):38-41+55.
[8] 廖义杰.基于XML的WebGIS符号设计与管理及其在交互制图中应用 [D].武汉:武汉大学,2005.
[9] 周玉科,周成虎,馬廷,等.数字地图要素样式结构化存储表达研究与实现 [J].地理与地理信息科学,2012,28(3):7-10.
[10] 赵卫平,李晓静.基于GeoTools的地图服务快速发布系统研究 [J].测绘与空间地理信息,2017,40(7):137-138+142.
作者简介:王丽(1969.10—),女,汉族,安徽寿县人,高级工程师,本科,研究方向:测绘工程。
收稿日期:2021-04-09
基金项目:山东省重大科技创新工程项目(2019JZZY020103)