一、普通wms与tilewms区别
相同点:都是加载WMS服务。
不同点:TitleWMS会把当前可视窗口根据网格(开发者可以在调用OpenLayers api的时候自定义)切分,一片一片地返回回来,在前端进行整合。而ImageWMS则不会进行切割,每次请求都是只会返回一个当前窗口可见地地图图片。如果WMS服务对应地数据比较大并且网络条件不是很好的时候,TileWMS交互体验更好一点(因为做了切割,每次返回回来的图片大小都比较小),而ImageWMS是返回一整个图片,看起来会有较大的卡顿时间,交互感觉不好。
二、封装一个TileWMSLayer图层,代码如下:
let TileWMSLayer = BaseTileLayer.createSubclass({
properties: {
urlTemplate: null,
spatialReference: null,
tileInfo: null,
},
getTileUrl: function (level, row, col) {
// return this.urlTemplate.replace("{z}", level).replace("{x}", col).replace("{y}", row);
},
fetchTile: function (level, row, col, options) {
let out = this.get