本发明专利技术提供了一种基于地图服务的高密度船位动态渲染系统,包括:服务身份验证模块、数据处理模块、自动发布切片模块、自定义样式模块和点击交互模块;本发明专利技术从船位与WebGIS引擎特性出发,利用GeoServer并结合前、后端技术,解决了目前切片制作速度慢、无法更换样式、无法交互等一系列问题,实现浏览器端的高效、动态、海量、高密度、可交互、可自定义样式的船位渲染。渲染。渲染。
【技术实现步骤摘要】
一种基于地图服务的高密度船位动态渲染系统
[0001]本专利技术属于地理信息
,尤其涉及一种基于地图服务的高 密度船位动态渲染系统。
技术介绍
[0002]目前在浏览器端加载船位主要通过请求获取JSON或GeoJSON(一 种对各种地理数据结构进行编码的格式,基于JavaScript对象表示 法的地理空间信息数据交换格式)格式数据,以矢量要素(vector) 的形式加载至图层中。但受浏览器性能限制,传统方案无法满足海量 船位数据的加载需求。为解决该问题,主流的解决方案主要有以下三 大类:
[0003][0004](1)基于要素聚合的船位动态显示技术
[0005]该方案通过简化要素结构或合并要素等方法达到加载海量数据 的目的,聚合效果如图1(a)、图1(b)所示,聚合优点是前端可 以采用常规要素操作方法控制要素,但船位作为展示核心要素,需要 在地图上完整展示,因此该方案只能作为一种临时的解决方案。
[0006](2)基于切片服务的船位动态显示技术
[0007]常用的Web地图瓦片服务(WMTS)有栅格切片(Rastertiles) 和矢量切片(vectortiles)两类。栅格切片服务的底层数据类型是栅 格图片,是目前理论中最适合渲染高密度船位的方案,但传统的栅格 切片服务存在切片速度过慢、切片缓存包过大、无法实现动态变化和 无法交互等问题;矢量切片是一种可交互的地图服务,包含GeoJSON、 topoJson和mapboxvectortile(MVT)等多种格式。如图2(a)、 图2(b)所示,虽然可以MVT实现前端自主控制样式渲染,但其本 质仍是对矢量要素进行聚合和稀疏处理,因此也不适用于高密度船位 渲染。
[0008](3)其他
[0009]该类方案主要基于WebGL技术实现,该方案通常需要对WebGIS 引擎框架的底层进行修改,开发成本较高,实际使用中海量数据需实 时请求传输,网络服务压力较大。
技术实现思路
[0010]为解决上述技术问题,本专利技术提出一种基于地图服务的高密度船 位动态渲染系统,通过在后端利用GeoServer服务器发布地图服务, 并对其提供的RESTAPI进行加工处理和封装,浏览器端进行适量的 规则约束,最终系统的解决了目前切片制作速度慢、无法更换样式、 无法交互等一系列问题,实现浏览器端的高效、动态、海量、高密度、 可交互、可自定义样式的船位渲染。
[0011]为实现上述目的,本专利技术提供了一种基于地图服务的高密度船位 动态渲染系统,包括:
[0012]服务身份验证模块、数据处理模块、自动发布切片模块、自定义 样式模块和点击交互模块;
[0013]所述服务身份验证模块用于对后端服务架构进行系统的设计,实 现后端的业务服务器和GeoServer服务器的分离;
[0014]所述数据处理模块用于对保存在业务服务器数据库中的船位数 据进行数据预处理,生成ShipFile文件;
[0015]所述自动发布切片模块用于利用后端调用GeoServer服务器提 供的API,实现对所述ShipFile文件进行发布;
[0016]所述自定义样式模块用于利用后端开发技术与GeoServer服务 器提供的API和发布的所述ShipFile文件,实现对船位的自定义渲 染;
[0017]所述点击交互模块用于利用JavaScript和WebGIS前端技术,提 高用户在前端的使用体验。
[0018]优选的,所述服务身份验证模块的工作内容包括:
[0019]用户登录后获取密钥,前端对WMTS服务URL进行改造并将密钥 作为参数参见至URL中,后端通过请求获取key,并对key进行验证, 实现后端的业务服务器和GeoServer服务器的分离。
[0020]优选的,所述数据处理模块进行数据预处理的过程包括:
[0021]从船位数据库中,获取需要通过栅格切片展示的船位数据;
[0022]将所述船位数据中的多字段数据融合至一个字段;
[0023]删除所述船位数据中的冗余字段,仅保留所述船位数据中的经纬 度、终端号和设备类型信息。
[0024]优选的,所述自动发布切片模块在第一次发布ShipFile文件后, 需进入GeoServer服务器的GeoWebCache管理页面检查发布服务是否 开启切片缓存功能,开启切片缓存功能后,会有本地目录下生成栅格 缓存文件,在切片服务更新后需及时删除缓存文件,防止GeoServer 服务器继续调用旧服务缓存资源。
[0025]优选的,切片服务更新后,前端的WebGIS需要重置URL以防止 由于浏览器缓存资源而导致用户船位数据不更新的问题。
[0026]优选的,所述自定义样式模块包括图标上传子模块、创建符号系 统子模块、创建样式子模块和图层样式子模块;
[0027]所述图标上传子模块用于将图标文件从前端上传至后端,后端再 将图标文件的数据流转换为对应的格式文件;
[0028]所述创建符号系统子模块用于根据指定过滤规则,转换格式后的 图标文件自动生成对应的SLD规则样式内容;
[0029]所述创建样式子模块用于调用GeoServer服务器中的Styles相 关API,将生成的SLD规则样式内容上传至GeoServer服务器的样式 中;
[0030]所述图层样式子模块用于利用GeoServer服务器中API,获取指 定图层原有的样式记录,对原有的样式记录进行修改后,生成新的样 式记录并再次调用Layers相关API将新的样式记录应用至指定图层 上。
[0031]优选的,所述点击交互模块包括地图点击交互事件子模块、WMTS 服务与矢量要素切换渲染子模块;
[0032]所述地图点击交互事件子模块用于通过前端WebGIS引擎获取点 击位置的坐标并
传给后端业务服务器;
[0033]所述WMTS服务与矢量要素切换渲染子模块用于在地图缩1
‑
14级 之前强制前端地图引擎采用地图服务的方式进行船位渲染,15级以 后强制采用矢量要素方式渲染船位。
[0034]优选的,通过前端WebGIS引擎获取点击位置的坐标并传给后端 业务服务器的过程包括:
[0035]根据瓦片矩阵集反算点击位置的相对位置,请求GeoServer服务 器获取船位识别号;
[0036]根据船位识别号查询数据库中的船位相关信息,对查询结果进行 标准化处理后返还给前端,即实现前端点击切片服务地图达到与点击 矢量要素相似的效果。
[0037]与现有技术相比,本专利技术具有如下优点和技术效果:
[0038](1)定时从数据库获取船位数据并发布栅格切片服务,实现地 图服务的动态更新;
[0039](2)用户可根据需求自定义WMTS服务中的船位样式;
[0040](3)浏览器端流畅的进行船位渲染,实现任意缩放等级下的地 图数据交互效果。
附图说明
[0041]构成本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于地图服务的高密度船位动态渲染系统,其特征在于,包括:服务身份验证模块、数据处理模块、自动发布切片模块、自定义样式模块和点击交互模块;所述服务身份验证模块用于对后端服务架构进行系统的设计,实现后端的业务服务器和GeoServer服务器的分离;所述数据处理模块用于对保存在业务服务器数据库中的船位数据进行数据预处理,生成ShipFile文件;所述自动发布切片模块用于利用后端调用GeoServer服务器提供的API,实现对所述ShipFile文件进行发布;所述自定义样式模块用于利用后端开发技术与GeoServer服务器提供的API和发布的所述ShipFile文件,实现对船位的自定义渲染;所述点击交互模块用于利用JavaScript和WebGIS前端技术,提高用户在前端的使用体验。2.根据权利要求1所述的基于地图服务的高密度船位动态渲染系统,其特征在于,所述服务身份验证模块的工作内容包括:用户登录后获取密钥,前端对WMTS服务URL进行改造并将密钥作为参数参见至URL中,后端通过请求获取key,并对key进行验证,实现后端的业务服务器和GeoServer服务器的分离。3.根据权利要求1所述的基于地图服务的高密度船位动态渲染系统,其特征在于,所述数据处理模块进行数据预处理的过程包括:从船位数据库中,获取需要通过栅格切片展示的船位数据;将所述船位数据中的多字段数据融合至一个字段;删除所述船位数据中的冗余字段,仅保留所述船位数据中的经纬度、终端号和设备类型信息。4.根据权利要求1所述的基于地图服务的高密度船位动态渲染系统,其特征在于,所述自动发布切片模块在第一次发布ShipFile文件后,需进入GeoServer服务器的GeoWebCache管理页面检查发布服务是否开启切片缓存功能,开启切片缓存功能后,会有本地目录下生成栅格缓存文件,在切片服务更新后需及时删除缓存文件,防止GeoServer服务器继续调用旧服务缓存资源。5.根据权利要求4所述的基于...
【专利技术属性】
技术研发人员:李海涛,姜青华,张雷,刘奕玮,张俊虎,
申请(专利权)人:青岛励图高科信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。