2021-05-21
geoserver矢量切片
gis 评论:0 浏览:141

转载请注明出处:https://oldnoop.tech/c/212.html

矢量切片简单介绍

优点是 切片大小比图片小,同时数据精确可以在客户端渲染,客户端拿到切片不必再请求服务端

缺点是 需要对地图数据预处理/只能用于渲染

可以有3个数据格式

1)GeoJSON json格式,可读,openlayers支持

2)TopoJSON 复杂json格式,有一点可读性,openlayers支持

3)MVT 大多数组件支持

服务端支持切片

服务端安装切片插件

下载geoserver对应版本号的插件, 在sourceforge上下载

解压缩,
将压缩包中的jar文件,复制到geoserver的WEB-INF/lib文件夹下
启动geoserver

浏览器访问geoserver的web页面,点击左边的菜单 Tile Caching,

在右边列表中选择一个切片图层,可以看到多了一个选项卡 Tile Caching

图层设置切片

图层设置 -> Tile Caching -> Tile Image Formats, 勾选切片格式:

设置之后,图层配置文件,数据目录data_dir下的gwc-layers文件夹下的图层配置文件

mimeFormats节点,增加了新的格式, 示例如下

服务端生成本地切片

在geoserver的web界面,点击左侧菜单 Tile Caching , 然后在右边列表中选择 图层 ,点击"Seed Truncate"

在接下来的页面中,进行相应的配置,点击 "Submit"就可以生成切片了,

切片生成后,会存储在 数据目录data_dir/gwc文件夹下, 为每个图层, 使用图层名 创建一个文件夹, 保存每个图层的切片文件

客户端请求切片

客户端调用wmts服务请求切片数据

最常见的是 使用openlayers 组件, 

请求wmts一般需要传递如下这些参数

1)服务参数REQUEST/SERVICE/VERSION

2)图层参数VERSION/STYLE

3)坐标系参数TILEMATRIX/TILEMATRIXSET

4)数据参数FORMAT/TILECOL/TILEROW

geojson格式数据请求示例

客户端调用tms服务请求切片数据

切片使用需要考虑的问题

版本问题

geoserver 和切片插件vectortiles 的版本一致

openlayers 的版本, 新旧版本 封装的属性数据 key值变化, 某些参数由小写变为大写

编码问题

国内某些机构的共享地理数据,比如dsac网站, 多数是GBK编码,创建数据存储时DBF的字符集需要注意

投影坐标系问题

最常见的是 WGS-84的 EPSG:4326, 谷歌墨卡托 的 EPSG:900913 及 EPSG:3857, 

国内也有 beijng54的3度分 EPSG:2437

客户端请求切片 会携带 坐标系参数, 服务端 切片图层设置的坐标系 ,前后端应该一致

切片在服务端本地生成的操作

强烈建议2点

1)将生成切片 和 对外提供应用 的 服务 进行隔离,

2)生成的时候进行预估,

原因是非常简单的,如果生成操作 非常 大, 可能 会造成geoserver 的 内存溢出 OOM 最终 导致应用服务的进程退出, 

geoserver 在这块的处理,还是有优化的空间,应该提供一个 预先估算的 功能,或者 在 估算 任务较大后,直接抛出 提示,供使用者选择

另外, 在 单独的服务器上 进行 生成本地切片, 再把 生成文件 推送到 对外的服务器上,这样隔离的进行,可靠且不影响 应用服务

 



  • 转载请注明出处:https://oldnoop.tech/c/212.html
验证码

Copyright © 2018 oldnoop.tech. All Rights Reserved

鄂ICP备18003018号