GISBox

如何将矢量文件发布成不同协议类型的服务?

通过服务分发中的前几篇文章,我们已经知道如何在服务分发中发布矢量服务。那本文就带大家了解一下发布矢量服务的四种协议类型,分别是WFS、WMS、WMTS以及MVT。为了方便大家了解更透彻,文章中我会以一个SHP文件为例给大家一一讲解。

添加SHP矢量文件

首先我们先添加一个矢量文件SHP,这里导入SHP文件的时候,注意SHP不是单一文件,而是由一组后缀名不同的文件共同构成的数据集,缺少核心文件就无法正常读取。矢量服务发布成功后,我们可以发现,在服务列表中就会增加一条我们发布的服务。

发布WFS服务

此时的服务协议类型默认是WFS,后面的2.0.0是其版本号,WFS全称Web要素服务,发布WFS服务后,我们可以通过四种框架进行预览,点击cesium可以查看到WFS服务,WFS主要是将数据发送到前端进行加载并绘制的,而WFS是不带样式的,WFS不像WMS那样需要配SLD样式文件,因为它只传输几何数据,样式由客户端自己决定。

发布WMS服务

下面我们切换WMS协议进行发布,WMS全称Web地图服务,点击cesium查看WMS服务,WMS服务是通过后端绘制成图,然后去前端加载的。通俗地讲就是把地图以一张图片的形式返回给前端。这里我们发现WMS服务的样式不一样,其实图中的样式是默认的GISBox自有的样式。我们要清楚前端是使用的我们前端写的样式,而前端写的样式和软件是没有关系的,那后端绘制的样式是要进行设置的。

样式设置

在“编辑矢量服务”的弹框中进行样式的设置。我们点击“自定义样式”,可以对地图样式选择不同格式规范,其中SLD是一种通用的XML格式。MBStyle由MapBox提出,使用JSON格式编写,专门用于矢量切片地图。QGISStyle是QGIS软件的专属原生格式,通常是.qml文件。Mapfile是MapServer软件的专属配置文件。LYRX是Esri的图层文件格式。GeoStyler是GeoSever的文件格式。以上的几种格式,都可以在直接编辑或者直接导入相关格式代码文件。

发布WMTS服务

我们下面发布WMTS服务,WMTS全称Web地图瓦片服务,是一种后端渲染的瓦片服务,兼容性强,基本支持所有的主流预览框架,我们点击cesium查看WMTS服务,会发现服务的速度比较慢,这是由于WMTS要将矢量在后端绘制,前端以下载瓦片的形式呈现,这里WMTS拥有缓存机制,后面我们再次打开就会很快响应。


WMTS服务同时支持EPSG:3857和EPSG:4326两种投影,EPSG:3857又称Web墨卡托投影,广泛应用于网络地图。EPSG:4326是WGS84经纬度投影,直接使用经纬度坐标。

发布MVT服务

WMTS服务需要服务器进行渲染,可能对服务器的压力较大。面对这一问题,我们可以发布MVT服务,MVT是一种前端渲染的瓦片格式,首次加载速度快,交互流畅但对前端设备有一定的要求,需要注意的是MVT不被Cesium原生支持,主要用于Mapbox和OpenLayers。

总结

面对这四种协议类型,我做一个大概的总结,WFS和WMS都属于非瓦片格式, WFS 把数据交给前端,由前端负责“画”出来;WMS 由后端画好再给前端“贴”上去。WMTS和MVT都是瓦片格式,WMTS浏览器拿到图片后,直接把这些图片“拼贴”在一起显示出来,MVT绘图工作是在前端完成的,后端只提供原材料。好了,相信大家都对这四种协议类型都有了深刻的了解,那下期给大家讲解如何在QGIS和ArcGIS中发布服务。


【温馨提示】:具体视频内容参考“如何把矢量文件发布成不同协议类型的服务?”