实现地图改色需要使用arcgis api4.18,实现原理是通过给WebTileLayer添加一个类似滤镜的滤镜效应,可参考 官网
具体实现代码
// An highlighted block
let tdt_vec = new WebTileLayer("http://{subDomain}.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&FORMAT=tiles&tk=天地图Key", {
"subDomains": ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
"tileInfo": this.tileInfoObj,
spatialReference: spatialReference,
});
tdt_vec.effect = "brightness(0.88) contrast(2.0) grayscale(1.8) hue-rotate(360deg) opacity(1) saturate(1) sepia(0.4) invert(2.9)";
this.map = new Map({
basemap: {
baseLayers: tdt_vec
},
});
这里的effect内的参数可以自己调整然后查看结果,也可以从这里进行调整使用。