如何在逐步更改地图中心和缩放后重新加载WMTS Tiles?

时间:2015-03-27 19:35:24

标签: openlayers-3

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

1 个答案:

答案 0 :(得分:0)

原则上,更改WMTS源的tileUrlFunction将触发刷新,因为这会清除切片缓存。如果你很幸运并且你的WMTS服务器正确使用Etags,那么再次使用相同的url函数将会起作用:

wmtsSource.setTileUrlFunction(wmtsSource.getTileUrlFunction());

如果您的WMTS服务器只设置了过期标头,则必须在网址上附加内容以强制浏览器重新获取它。假设您使用KVP编码与您的WMTS服务器通信,您可以通过执行类似

的操作来实现此目的
var random = Math.random();
var originalTileUrlFunction = wmtsSource.getTileUrlFunction();
wmtsSource.setTileUrlFunction(function() {
  return originalTileUrlFunction.apply(this, arguments) + '&' + random;
});