javascript – Google Maps Polyline – 如何删除?

前端之家收集整理的这篇文章主要介绍了javascript – Google Maps Polyline – 如何删除?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我检查了以前的问题,这些都与V2有关,这是没有帮助的.

所以,我创建两个标记,将它们保存在数组中作为标记[“to”]和标记[“from”]

然后再添加它们

function route(){
        for(var key in markers) {
           flightPlanCoordinates.push(markers[key].position);
       }
        flightPath = new google.maps.Polyline({
            path: flightPlanCoordinates,strokeColor: "#FF0000",strokeOpacity: 1.0,strokeWeight: 2
    });
   flightPath.setMap(map);
}

辉煌.
但.下次我使用它(使用数组中的新标记),它只是添加一个折线,而不删除之前的一个.
我似乎尝试了所有的东西,从第一个阵列,flightPath,setMap(null)等删除.

在绘制新行前,删除上一行的正确方法是什么?

编辑:解决

function route(){
    var flightPlanCoordinates = [];
    for(var key in markers) {
        flightPlanCoordinates.push(markers[key].position);
    }
    if(flightPath) {
        flightPath.setPath(flightPlanCoordinates);
    } else {
        flightPath = new google.maps.Polyline({
            path: flightPlanCoordinates,strokeWeight: 2
        });
        flightPath.setMap(map);
    }
}

原因:
flightPlanCoordinates需要在范围内进行初始化,这将在每次使用时重置数组,将其正确清理. (还要感谢下面的输入,使代码更好一点.

解决方法

在flightPath = new …之前,我看不到var,所以我认为flightPath是一个全局变量.
function route(){
   //flightPath.setMap(null); Doesnt't work!?
   for(var key in markers) {
       flightPlanCoordinates.push(markers[key].position);
   }
   if(flightPath) {//If flightPath is already defined (already a polyline)
       flightPath.setPath(flightPlanCoordinates);
   } else {
       flightPath = new google.maps.Polyline({
           path: flightPlanCoordinates,strokeWeight: 2
      });
      flightPath.setMap(map);//It's not necessary to setMap every time
   }

}
原文链接:https://www.f2er.com/js/151182.html

猜你在找的JavaScript相关文章