0

我有一个项目,我使用从数据库中查询的坐标在 googlemaps 上绘制折线。这些坐标显示了汽车的每日路线。当我查询另一天的路线时,它与前一天的路线发生冲突。我试图删除前一个或只是将其映射设置为 null 或将其可见属性设置为 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 作为全局变量。

4

1 回答 1

1

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

于 2012-11-19T22:00:08.907 回答