首页 / OpenLayers / API 文档
TileWMS
先看结论
瓦片化 WMS 数据源。把 GetMap 请求切成固定瓦片逐块加载,兼顾 WMS 服务端样式控制与瓦片缓存效率。
new ol.source.TileWMS(options)
构造参数
| 参数 | 说明 |
|---|---|
url | WMS 服务地址 |
params | 请求参数对象,LAYERS 必填,VERSION 默认 '1.3.0',STYLES 默认空串 |
projection | 瓦片投影,默认与视图一致 |
serverType | 服务端类型,可取 'mapserver'、'geoserver'、'carmentaserver'、'qgis' |
tileGrid | 自定义瓦片网格 |
hidpi | 是否按设备像素比请求更高清瓦片,默认 true |
crossOrigin | 跨域取值,导出图片时需设为 'anonymous' |
transition | 瓦片淡入时长毫秒 |
wrapX | 是否横向循环,默认 true |
常用方法
| 方法 | 返回 | 说明 |
|---|---|---|
updateParams(params) | void | 合并请求参数并清缓存重新请求 |
setUrl(url) | void | 替换服务地址 |
getFeatureInfoUrl(coord, resolution, projection, params) | string | 生成 GetFeatureInfo 地址,参数不足时返回 undefined |
refresh() | void | 清空瓦片缓存并重新请求 |
getTileUrlFunction() | function | 取当前瓦片地址生成函数 |
var wms = new ol.source.TileWMS({
url: 'https://example.com/geoserver/wms',
params: {
LAYERS: 'demo:parcels',
VERSION: '1.3.0',
STYLES: '',
TILED: true,
FORMAT: 'image/png',
TRANSPARENT: true
},
serverType: 'geoserver',
crossOrigin: 'anonymous',
transition: 0
});
map.addLayer(new ol.layer.Tile({ source: wms }));
// 切换渲染样式
wms.updateParams({ STYLES: 'highlight' });
注意事项
TILED不设为 true 时服务端仍按整幅渲染,瓦片拼接处容易出现接缝与符号截断。- WMS 1.3.0 中
EPSG:4326的轴序为纬度在前,服务端与客户端的轴序约定不一致会导致图层上下颠倒。 updateParams会清空已有瓦片,频繁调用会造成闪白,批量改参数应一次传入。- 属性查询依赖服务端开启 GetFeatureInfo,返回 undefined 通常说明该图层未配置可查询字段。
经纬志(2026)。《TileWMS》。https://www.jingweizhi.com/openlayers/api/tile-wms.html(访问日期 2026-11-03)。