如何从谷歌地图中删除折线?

时间:2012-11-19 21:44:32

标签: javascript google-maps polyline

我有一个项目,我使用从数据库查询的坐标在googlemaps上绘制折线。那些坐标显示了汽车的每日路线。当我查询另一天的路线时,它与前一个路线相撞。我试图删除前一个或只是将其地图设置为null或只是将其visible属性设置为false。但都没有效果。还有其他方法吗?这是我的代码:

drawPath = function () {
    $.ajax({
        type:'POST',
        dataType:'json',
        data:'cmd=getPath&id='+<?php echo $this->input->get('id'); ?>+'&date='+$("#time").val(),
        url: 'index.php/ajax_controller',
        success: function(data) {
            var pathLatLng,nextLatLng;
            var line;
            var gBas=0;
            var dBas=0;
            for (var i = 0; i < data.length-1; i++) {
                var lat1=data[i].LAT1.substring(0,2)+"."+data[i].LAT1.substring(2);
                var lng1=data[i].LNG1.substring(1,3)+"."+data[i].LNG1.substring(3);
                pathLatLng = new google.maps.LatLng(lat1,lng1);
                lat1=data[i+1].LAT1.substring(0,2)+"."+data[i+1].LAT1.substring(2);
                lng1=data[i+1].LNG1.substring(1,3)+"."+data[i+1].LNG1.substring(3);
                nextLatLng = new google.maps.LatLng(lat1,lng1);
                var color="#1BE09E";
                var opacity={opacity: 0.50};

                var path=[pathLatLng,nextLatLng];
                var polyLineOpt={
                    path: path,
                    strokeColor: color,
                    strokeOpacity: 1.0,
                    strokeWeight: 2,
                    geodesic: true,
                    map: map
                }
                line = new google.maps.Polyline(polyLineOpt);
            }
        },
        error:function(){
        }
    });
}

正如你所看到我用AJAX查询坐标。我还尝试使用line作为全局变量。

1 个答案:

答案 0 :(得分:1)

删除保存创建的折线的变量因此删除行时,它应该有效。但是因为你在for循环中创建了许多折线,你需要在某处备份所有对象,很可能也是数组或对象。然后你可以在一个循环中删除它们。