簡體   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