Skip to main content

Openlayers 加载WMTS 19

WMTS简介

WMTS,即Web地图瓦片服务(Web Map Tile Service),由OGC(开放地理信息联盟)制定。根据WMTS标准,可以使我们轻松的访问瓦片数据。

WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案,它最重要的特征是采用瓦片缓存技术缓解WebGIS服务器端数据处理的压力,提高前后端交互响应速度。

WMS(Web地图服务)提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD-Style Layer Descriptor)的理想解决方法。例如,可以在GeoServer中通过修改SLD样式文件来随时自定义地图样式:

随时都可以修改,而且一修改在客户端就能实时渲染出变化。根本原因是WMS的地图数据并没有通过切片放置到硬盘中,它的地图数据是实时处理并传输到客户端的。

而WMTS标准需要地图数据切片后放置在硬盘中,然后再调用数据传输到客户端。

WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(瓦片地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在瓦片坐标系中。这些固定的瓦片地图数据集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准诸如分布式缓存的网络机制实现伸缩性。

WMTS的接口

WMTS服务支持RESTful访问,其接口包括:

GetCapabilities —— 获取服务元数据,元数据描述该服务的功能和包含的信息
GetTile —— 获取地图瓦片
GetFeatureInfo —— 通过在WMTS图层上指定一定的条件,返回指定的地图瓦片内容对应的要素信息

GetCapabilities

GetCapabilities操作的参数:

示例:

​ ArcGIS Online发布的美国地图WMTS服务的基地址是:

http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_Density/MapServer/WMTS/

​ 那么要查询它的元数据,就可以使用以下URL:

http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_Density/MapServer/WMTS/?Service=GetCapabilities

​ 查询结果如下所示(节选):

GetTile

GetTile的参数:

示例:

​ 要查询以上ArcGIS Online发布的美国地图WMTS服务的层级为4,列号为3,行号为5的一块瓦片,可以这样请求:

http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_Density/MapServer/WMTS/?tilematrixset=EPSG%3A3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix=4&TileCol=3&TileRow=5

GetFeatureInfo

GetFeatureInfo的参数:

查询要素信息一般使用OGC的WFS(Web Feature Service),所以就不详细介绍WMTS的GetFeatureInfo这个接口了

加载ArcGIS产品发布的WMTS服务数据

加载ArcGIS Online发布的WMTS服务数据

ArcGIS Online中的美国地图的WMTS服务基地址为:

http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_Density/MapServer/WMTS/

可以使用OpenLayers中的ol.layer.Tile类 + ol.source.WMTS类来加载WMTS服务数据。

效果:

完整代码

注册VIP

如果已经是VIP,请直接登陆 登陆

发表回复