百度地图中拖拽地图后,多边形消失的问题

问题描述:

在手机端,在百度地图中绘制多边形区域,当拖动地图时,多边形区域会消失一部分,继续拖动,会继续再消失,拖动到原位置后,又重新现显示完全

代码:

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)时初始化的。

结论:创建百度地图对象时,一定要保证此时的容器是显示的状态,添加覆盖物同时也要保证地图是显示的状态

posted @ 2019-03-26 12:06  abc1234_abc  阅读(461)  评论(0编辑  收藏  举报