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

Posted panyujun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度地图中拖拽地图后,多边形消失的问题相关的知识,希望对你有一定的参考价值。

问题描述:

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

代码:

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

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

以上是关于百度地图中拖拽地图后,多边形消失的问题的主要内容,如果未能解决你的问题,请参考以下文章

vue中实现百度地图拖拽地图定位功能

百度地图,画多边形后获取中心点

百度地图,画多边形后获取中心点

PyQt5在QTableview中拖拽导致选中行消失

Tableau如何绘制多边形地图

在百度地图上手绘了一个多边形,随便用鼠标点击地图获取改点坐标,并判断是不是属于在手绘的多边形内