删除和重新添加XYZ图层是在ol5中更新它的唯一方法吗?
我知道TileWMS有一个updateParams()方法,这很好,但是我正在使用的某些层是带有时间查询参数的XYZ。
这是我如何工作的伪代码,但这似乎不是正确的解决方法。
function createLayer() {
return new TileLayer({
source: new XYZ({
url: 'https://url?x={x}&y={y}&z={z}&time=' + dateTimeString,
})
});
}
map.addLayer(createLayer());
// user interaction to change the time
map.removeLayer(createLayer());
map.addLayer(createLayer());
谢谢!
答案 0 :(得分:3)
答案 1 :(得分:3)
此方法可以用作伪参数来覆盖缓存,也可以在诸如气象图的来源上设置可配置的时间参数:
var layer = new TileLayer({
source: new XYZ()
});
function setTileUrl(dateTime) {
layer.getSource().setUrl('https://url?x={x}&y={y}&z={z}&time=' + dateTime);
}
setTileUrl(initialDateTime);
map.addLayer(layer);
// user interaction to change the time
setTileUrl(newDateTime);