2012-11-19 50 views
0

我有一個項目,我使用從數據庫查詢的座標在Google地圖上繪製折線。這些座標顯示汽車每日路線。當我查詢另一天的路線時,它會與前一個路線發生衝突。我試圖刪除前一個或只是將其地圖設置爲null或只是將其可見屬性設置爲false。但沒有人工作。還有其他方法嗎?這裏是我的代碼:如何從googlemap中刪除多段線?

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的座標。我也嘗試使用線作爲全局變量。

+0

試圖將行的映射設置爲null的代碼在哪裏? (這是我所做和推薦的)。 –

+0

我將它綁定到一個按鈕。就像這樣; line.setMap(NULL); – ag0702

回答

1

它應該工作,當你刪除保存所創建的折線因此刪除線的變量。但是因爲您在for循環中創建了多條折線,所以您需要將所有對象備份到某處,最有可能是數組或對象。然後你可以在一個循環中全部刪除它們。

+0

它仍然無法正常工作。因爲我在for循環中創建折線? – ag0702

+0

是的。將對象存儲在數組中,然後您可以將它們全部刪除。 – Bytemain

+0

謝謝你的男人。這真是一個愚蠢的問題,謝謝。 – ag0702