說明:
在做項目過程中,用overlay做了一個infowindow彈窗,但是在使用過程中發現一個bug:overlay.setPosition以后,會出現偏移,但是拖動一下地圖或者點擊一下地圖其他地方就回到正確的位置。
代碼如下:
let overlay = new ol.Overlay({ id: "overlay", element: "marks", positioning: "bottom-center", stopEvent: _stopEvent ? _stopEvent : false });
過程:
研究發現positioning改成默認(top-left)就沒問題,緊接着試了其他幾個參數center-center,bottom-left等,凡是設了center的都會有這個問題。
#參數:'bottom-left', 'bottom-center', 'bottom-right', 'center-left', 'center-center', 'center-right', 'top-left', 'top-center', 'top-right'
推測overlay在渲染center時有點bug
解決方案:
將overlay的positioning設置在加載后,即可
let overlay = new ol.Overlay({ id: "overlay", element: "marks", //positioning: _position, //這里注釋掉 stopEvent: _stopEvent ? _stopEvent : false }); overlay.setPosition([_x,_y]); map.addOverlay(overlay); //解決overlay渲染center時出現偏移的問題 overlay.setPositioning("bottom-center");
