内容摘要:作图需要数据,要把本地的数据资源进行共享,或者从服务端获取地图数据。经常需要面对各种地图服务规范,例如:WMS、WFS、WCS、WMTS等。因此,了解这些服务的内容是相当重要的,今天我们说一下最常见的四种服务协议。
1、OGC联盟
在介绍几个协议之前,我们先说说OGC联盟。
开放地理空间信息联盟 (Open Geospatial Consortium-OGC),是一个非盈利的国际标准组织,致力于提供地理信息行业软件和数据及服务的标准化工作,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作。
OGC在1994年到2004年期间机构名为Open GIS Consortium, 后因业务需要更名为OGC。
因为有了OGC,各个GIS厂商之间为了实现数据之间的交互,所以才有以下的协议。
2、WMS服务
WMS是指OGC的Web地图服务(Web Map Service)规范,它利用具有地理空间位置信息的数据制作地图,将地图定义为地理数据可视的表现。详细信息可以参考GeoServer官网的WMS介绍。
WMS定义了一个规范的HTTP接口,支持标准HTTP协议的GET和POST请求,但多基于GET方式进行服务请求。能够根据用户请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。
小哥,在安装Geoserver服务后,配置了一个自己的WMS服务,这不在Surfer中可以直接从服务端直接加载数据了,如图1和图2。
把地图数据放到服务器,然后通过WMS协议发布出来,想要那一块直接输入参数就ok啦!图2是配置的服务信息,内网的小伙伴们可以试试哦!
3、 WFS服务
WFS是指OGC的Web矢量(要素)服务(Web Feature Service),返回的是矢量级的地理标记语言GML编码,并提供对矢量的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,还包括基于空间关系和属性域的共同查询。
WMS返回的是图层级的地图影像,而WFS是为了返回纯地理数据而设计的,它不包含任何关于绘制数据的建议。
矢量地图/图层的共享可以考虑WFS。
4、 WCS服务
WCS是指OGC的Web栅格服务(Web Coverage Service)面向空间影像数据,它将包含地理位置值的地理空间数据作为“栅格或者说“覆盖”(Coverage)”在网上相互交换。
一些地形图,异常图之类的网格文件,用这个WCS没毛病。
5、WMTS服务
WMTS指OGC的Web地图瓦片服务(Web Map Tile Service),是OGC提出的缓存技术标准。WMTS标准定义了一些操作,这些操作允许用户访问瓦片地图,是OGC首个支持RESTful访问的服务标准。
WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足,在服务器端把地图切割为一定不同级别大小的瓦片(瓦片矩阵集合),对客户端预先提供这些预定义的瓦片,将更多的数据处理操作如叠加和切割等放在客户端,降低服务器端的载荷。
WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性。
瓦片服务一般是在服务器上面预先渲染好,特别是分级数量较多时,还是很耗费服务器资源的,好处是图片形式的交互,协议简单,http啥的都支持,也是最广泛使用的一种协议,百度地图啥的都是这种协议。
知道上面几个服务后,再看看Geoserver的支持类型(图3),下面剩下的就是开心地配置喽!
小结:
WMS:是一种动态地图服务,根据用户请求返回相应地图数据的可视化结果,实时切片,因此速度较慢。是GeoServer发布地图时较为常用的服务。
WMTS:是一种采用预定义图块方法发布数字地图服务,将地图切分成瓦片矩阵集合,牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内,但是提升了服务速度。例如我国的天地图就是使用这一服务进行组织的。
WFS:是为了返回纯地理数据而设计的,它不包含任何关于绘制数据的建议,它提供了对矢量的增加、修改、删除等事务操作。
WCS:是面向空间影像数据服务,它将包含地理位置值的地理空间数据作为“栅格或者说“覆盖”(Coverage)”在网上相互交换。