Google Map V3删除折线叠加层

时间:2012-07-18 08:15:36

标签: javascript google-maps

我想我现在必须放弃并且因为我的截止日期临近而要求。大家好,我想在谷歌地图中删除我的折线。它在我的研究中说,这样做很容易:

myInstance.setMap(null);

然而,由于我有这段代码,因此开始复杂化:

jQuery.ajax({
        type: "POST",  
        url: url,
        async: false, 
        dataType: 'json',
        data: data,
        success: function(result){
            var size = 0, key;
            for (var i = 0; i < result.data.length; i++) {
                if(i==0){
                    var pointA = new google.maps.LatLng( result.data[i].t.latitude, result.data[i].t.longtitude );
                    Polyline.push(pointA);
                }
                if(i == 1){
                    pointA = pointA;
                    var pointB = new google.maps.LatLng( result.data[i].t.latitude, result.data[i].t.longtitude );
                    var color = result.data[i].t.color;
                    Polyline.push(pointB);
                    LinePath = new google.maps.Polyline({
                        path:Polyline,                                                                                                                              
                        strokeColor:color,
                        strokeOpacity:1.0,
                        strokeWeight:5
                        });
                    polyLinePath.push(LinePath); 
                    LinePath.setMap(map);
                }
                if(i>1){
                    pointA = pointB;
                    Polyline = [];
                    Polyline.push(pointA);
                    var pointB = new google.maps.LatLng( result.data[i].t.latitude, result.data[i].t.longtitude );
                    Polyline.push(pointB);
                    var color = result.data[i].t.color;
                    LinePath = new google.maps.Polyline({
                        path:Polyline,                                                                                                                              
                        strokeColor:color,
                        strokeOpacity:1.0,
                        strokeWeight:5
                        }); 
                    LinePath.setMap(map);
                    polyLinePath.push(LinePath);
                    Polyline = [];
                    Coordinates= [];
                }
            }


}


        }

    });

LinePath正在被使用,正在输入的数据会发生变化而不会保留其中的路径值。所以每次我调用clearMap();

function clearMap(){
  LinePath.setMap(null);
}

我的地图中没有任何内容被清除。我已阅读相关帖子并对其进行了研究。由于我试图实现我的目标,因此我在此之前发布此代码时实际上有几个注释掉的代码。请帮忙

1 个答案:

答案 0 :(得分:3)

您似乎正在创建LinePath的多个实例并将它们推送到polyLinePath。

尝试清除所有这些:

function clearMap(){
   if (polyLinePath){
       for (var i=0; i<polyLinePath.length; i++){
          polyLinePath[i].setMap(null);
       }
   }
}