说明:
在作项目过程当中,用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");