--- title: 加载WMS服务 date: 2020-03-21 author: ac tags: - Openlayers - WMS categories: - GIS --- ## 1. WMS服务 详见查看服务标准中的[WMS简述](./wms.md)。 在`OpenLayers`中加载`WMS`服务可以使用以下两种方式加载: - `ol.layer.Image`+`ol.source.ImageWMS` - `ol.layer.Tile`+`ol.source.TileWMS` 使用`Tile`的方式加载时,响应回来的瓦片会被浏览器缓存,当地图视口内的WMS服务被缓存后不会重复请求已经缓存的图片,但存在的问题是,如果首次发送的GetMap请求一直没有响应图片,后续将不会再发送该区域范围内的GetMap请求。在这种情况下,相比`Tile`的方式,ImageWMS的方式是渲染返回的单张图片会有更好的制图效果。 ## 2. 图层加载 ### 2.1 方式一 ![image-20201202111908212](./images/image-20201202111908212.png) ```html OpenLayers example

OGC WMS服务,方式一:ol.layer.Image + ol.source.ImageWMS

``` ### 2.2 方式二 ![image-20201202111544388](./images/image-20201202111544388.png) ```html OpenLayers example

OGC WMS服务,方式二:ol.layer.Tile + ol.source.TileWMS

``` ### 2.3 总结 根据请求参数可以知道,`Tile`的请求方式是将地图当前范围按图块大小(`width`*`height`,默认为256\*256)分割计算出多个`bbox`,发送多个`GetMap`请求获取地图图片。而`ImageWMS`请求方式的参数中的宽高直接是地图当前视图的宽高,将当前地图视图范围作为`bbox`边界,获取单张地图图片。