开源矢量切片部署文档
-
基础环境
-
GeoServer2.15.1
-
PostgreSQL10(PostGIS 2.0 Shapefile and DBF Loader Exporter)
-
MapBox1.0.0
-
字体库Microsoft YaHei
-
GeoServer是一个基于Java的软件服务器,允许用户查看和编辑地理空间数据。使用开放地理空间联盟(OGC)提出的开放标准,geoserver在地图创建和数据共享方面具有很大的灵活性。
PostGIS为PostgreSQL对象关系数据库添加了对地理对象的支持。实际上,postgis”在空间上启用”了postgresql服务器,允许将其用作地理信息系统(gis)的后端空间数据库,很像esri的sde或Oracle的空间扩展。Postgis遵循Opengis”简单的SQL特性规范”,并已通过”类型和功能”配置文件的认证。
-
部署过程
-
基础地理数据在Arcmap10.2中打开。
-
PostGreSQL10的web页面,新建china空间数据库。
-
打开PostGIS,开始向Postgresql导入shp文件。
- 在窗口点击View connection details按钮打开数据库china
- 选择需要导入的shp数据文件,导入文件路径不可以含有中文。
- 再导入数据的界面上更改SRID的空间坐标系参数(EPSG:4326为WGS84地理坐标系)
- 打开Geoserver地理服务器,登录,开始创建工作区(china)。
- 点击数据存储为工作区添加矢量数据源(PostGIS),数据源名称为china
- 点击图层选项,开始发布图层,数据源为china
- 新建图层组(china)
- 图层添加图层组(前面发布的图层),注意各图层的排列次序面,线,点
- 图层组设置切片的缓存格式(需要安装矢量切片插件geoserver-2.15.1-vectortiles-plugin),只保留EPSG900913坐标系,因为mapbox仅能加载3857坐标的服务
- 图层预览,在搜索框中输入china查询刚建立的图层组
- 在select one选择OpenLayers3查看切片服务。
- Openlayer3的数据预览,如果没有显示完全,调整图层次序,避免压盖。
- 查看矢量切片的服务
-
矢量切片展示效果
http://localhost:2345/geoserver/gwc/demo/china?gridSet=EPSG:900913&format=application/vnd.mapbox-vector-tile
- 为了更好更流畅的加载矢量切片服务,可以创建矢量切片图层缓存,点击Tile Layers,在搜索框中输入china查询图层,点击Seed/Truncate开始切片。
- 选组切片任务的进程数,和切片的界面,点击submit提交切片任务。
- 文件夹中的切片缓存,可直接提取使用文件构建矢量切片服务器
-
Mapbox 加载发布的矢量切片
-
加载数据代码解析
Style.version:矢量切片版本
Style.sprite:渲染的样式表,包含sprite.json和sprite.png两个文件
Style.glyphs:渲染的字体库
Style.sources:数据源
Style.layers:数据源中的图层
Style.sources.china:数据源名称
Style.sources.china.tiles:数据源矢量切片地址
获取矢量切片的方式
-
tms服务
http://localhost:8080/geoserver/gwc/service/tms/1.0.0/ china@EPSG%3A900913@pbf/{z}/{x}/{y}.pbf
-
wmts服务
-
XYZ:(需要重命名)
http://test.sharegis.cn/mapbox/maptile/{z}/{x}/{y}.pbf
样式表可以通过mapbox studio编辑下载获取