繁体   English   中英

在以法律方式更改地图中心和缩放后如何重新加载WMTS Tile?

[英]How to reload WMTS Tiles after progromattically changing the map center and zoom?

我正在实现一项功能,供用户选择与地图上的点相对应的列表项。 我目前能够设置正确的地图中心和缩放级别,但是在我导致在地图上发生MouseWheelZoom交互之前,地图图块为空白。 如何使WMTS图层更新到新的缩放级别和地图范围?

原则上,更改WMTS源的tileUrlFunction将触发刷新,因为这将清除图块缓存。 如果您很幸运,并且您的WMTS服务器正确使用了Etags,则只需再次使用相同的url函数即可:

wmtsSource.setTileUrlFunction(wmtsSource.getTileUrlFunction());

如果您的WMTS服务器只设置了到期标头,则必须在URL后面附加一些内容以强制浏览器重新获取它。 假设您使用KVP编码与WMTS服务器通信,则可以通过执行以下操作来实现此目的

var random = Math.random();
var originalTileUrlFunction = wmtsSource.getTileUrlFunction();
wmtsSource.setTileUrlFunction(function() {
  return originalTileUrlFunction.apply(this, arguments) + '&' + random;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM