說明:
在作項目過程當中,用overlay作了一個infowindow彈窗,可是在使用過程當中發現一個bug:overlay.setPosition之後,會出現偏移,可是拖動一下地圖或者點擊一下地圖其餘地方就回到正確的位置。spa
代碼以下:code
let overlay = new ol.Overlay({ id: "overlay", element: "marks", positioning: "bottom-center", stopEvent: _stopEvent ? _stopEvent : false });
過程:
研究發現positioning改爲默認(top-left)就沒問題,緊接着試了其餘幾個參數center-center,bottom-left等,凡是設了center的都會有這個問題。blog
#參數:'bottom-left'
, 'bottom-center'
, 'bottom-right'
, 'center-left'
, 'center-center'
, 'center-right'
, 'top-left'
, 'top-center'
, 'top-right'
element
推測overlay在渲染center時有點bugit
解決方案:
將overlay的positioning設置在加載後,便可io
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");