百度地图中拖拽地图后,多边形消失的问题
问题描述:
在手机端,在百度地图中绘制多边形区域,当拖动地图时,多边形区域会消失一部分,继续拖动,会继续再消失,拖动到原位置后,又重新现显示完全
代码:
var points = [{"lng":116.4935302734375,"lat":40.0506591796875},{"lng":116.4935302734375,"lat":40.05615234375},{"lng":116.488037109375,"lat":40.05615234375},{"lng":116.488037109375,"lat":40.0616455078125},{"lng":116.488037109375,"lat":40.067138671875},{"lng":116.488037109375,"lat":40.0726318359375},{"lng":116.4935302734375,"lat":40.0726318359375}]; var ps = [] for (var i in points) { ps.push(new BMap.Point(points[i].lng,points[i].lat)); } var ply = new BMap.Polygon(ps,{
strokeColor: "#b763e0", //边线颜色。
fillColor: "#b763e0", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 1, //边线的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
strokeStyle: 'solid' //边线的样式,solid或dashed。
}
); // 建立多边形覆盖物 map.addOverlay(ply); // 添加覆盖物
添加覆盖物的方式完全正确,但是确出现了一些奇怪的bug,一定要检查下,显示百度地图的容器是否是在显示的状态下(display!=none)时初始化的。
结论:创建百度地图对象时,一定要保证此时的容器是显示的状态,添加覆盖物同时也要保证地图是显示的状态