0
我使用比例爲1.0的ImageWMS圖層,因此我的地圖請求正好是地圖<div>
的尺寸。如果用戶緩慢調整地圖大小,可能會有數十個地圖請求。我想在resize事件上放一個setTimeout()來延遲映射請求,並希望減少請求的數量。有關我如何做到這一點的任何建議?如何在地圖上放置setTimeout()調整大小
我使用比例爲1.0的ImageWMS圖層,因此我的地圖請求正好是地圖<div>
的尺寸。如果用戶緩慢調整地圖大小,可能會有數十個地圖請求。我想在resize事件上放一個setTimeout()來延遲映射請求,並希望減少請求的數量。有關我如何做到這一點的任何建議?如何在地圖上放置setTimeout()調整大小
我結束了以下,它延遲了半秒更新地圖的大小(並因此向服務器發出請求)。
window.addEventListener('resize', function(e) {
if (e) {
e.stopImmediatePropagation()
clearTimeout(window.updateSizeTimer)
window.updateSizeTimer = setTimeout(function() {
map.updateSize();
}, 500);
}
});
事件監聽器需要創建地圖對象之前進行註冊,否則stopImmediatePropagation()
不會阻止默認的OpenLayers被調用調整處理。 window.updateSizeTimer
可以是任何全局變量,但它必須是持久性的,如果它要被清除clearTimeout()