一、GeoServer发布服务
利用GeoServer发布服务很简单,首先新建一个工作区,之后在数据存储中新建数据源,添加postgis,即可发布postgresql中的矢量数据了。在Layer Preview即可通过点击 OpenLayers查看发布的图层了,如下图。
在服务发布后,发现geoserver中进行符号化配置很麻烦。查资料后发现可以首先在QGIS中进行符号化配置(uDig也可以),导出sld格式的风格配置文件。在geoserver中新建风格,导入之前导出的sld文件。之后在发布服务时,default stype选择新建的风格即可。下图就是配置的一个花花绿绿版的中国地图。
需要注意的是在QGIS中导出风格文件的图层和发布的图层的结构必须一致,我第一次发布后报错,如下,就是因为qgis中的图层中有一个id字段,而发布的图层里没有因此报错。
<ServiceException>
The requested Style can not be used with this layer. The style specifies an attribute of id and the layer is: Spatial:ʡ
</ServiceException>
二、矢量瓦片服务发布
- 栅格瓦片的主要缺点:
- 灵活性不够。栅格瓦片存储的是图片格式(png),显示风格等不能够进行修改;
- 实时性不够。当数据发生变化时,栅格瓦片只能重新切片,不能实时更新;
- 无法查询属性信息。栅格瓦片是纯粹的图片,没有属性信息。在需要进行属性查询等操作时,只能从服务器获取属性信息。
- 矢量瓦片的主要优点:
- 属性信息保留。进行属性查询时候,不用再向服务器发送请求。
- 采用分块编码模式。返回的是请求区域内相应级别的矢量瓦片,通常比同样范围图片数据量小。
- 无极缩放。矢量瓦片分辨率可达4096*4096,是栅格瓦片的16倍。
- 显示风格可自由设置。由于是由客户端完成渲染,所以客户端可以自由设置显示风格。而不像栅格瓦片风格在切片前已在服务器端设置完毕。
- 灵活性高。可以对任意图元进行个性化定制,也可以调整层压盖顺序。
基于矢量瓦片还可以做一些比较“酷”的操作,年前去验收一家公司的软件时,他们可以在系统内选中一条道路,再将其转换为图上标绘或者导出。这种方式我猜就是利用了矢量瓦片的数据可选取特性。
-
矢量瓦片输出格式
GeoServer主要支持输出的矢量瓦片输出格式有:GeoJSON,TopoJSON,MapBox Vector(MVT)。其中MVT被支持的最多,ArcGIS也支持该格式。 -
GeoServer实现矢量瓦片支持
在geoserver下载页中的Output Formats中有Vector Tiles,点击即可下载。解压后将文件拷贝到geoserver-2.16.2\webapps\geoserver\WEB-INF\lib下,关闭启动窗口再重新启动geoserver,即可在发布服务时在Tile Caching中选择输出为矢量瓦片。