---
title: 加载WMTS服务
date: 2020-03-21
author: ac
tags:
- Openlayers
- WMTS
categories:
- GIS
---
## 1. WMTS服务
详见查看服务标准中的[WMTS简述](./wmts.md)。
以GeoServer自带的`tiger:tiger_roads`图层为示例数据,首先可以图层信息中的`Tile Caching`的tab页看到该图层有哪些切图方案和瓦片支持的输出格式:

在`gridsets`找到上面的切图方案详情,加载图层的时候要用到。
## 2. 图层加载

```html
OpenLayers example
OGC WMTS服务:加载GeoServer的WMTS服务
```
**解析**:
通过创建`ol.source.WMTS`实例,配置WMTS服务信息:
- url:WMTS服务的地址
- layer:服务的图层名或图层组名,格式是:命名空间+“:”+图层名|图层组名
- matrixSet:切图策略的名称(GridSet的名称)
- format:指定响应瓦片的格式,可以在图层信息中的“Tile Caching”中查看,
> image/jpeg是只有[r,g,b]三个通道的,但image/png是有[r,g,b,a]四个通道的可以实现背景透明的效果
- projection:配置服务所属的坐标参考。如果与view中的参考不同会进行重投影
- tileGrid:瓦片网格对象,即是服务的切图方案的配置对象,应与服务对应的GridSet保持一致,才能正确的计算瓦片的级别和行列号。
- tileLoadFunction:瓦片加载函数。默认是上述的脚本,是WMTS服务的GetTile请求URL。
在创建Tile图层实例时,增加Extent参数限制数据源加载瓦片的边界(服务图层的边界),避免出现行列号索引越界的400的请求。
