2016-09-29 51 views
-1

我必須繪製多個方向是這樣的:爲什麼我不能通過調用setMap(null)來刪除方向?

A-> B B->ÇC-> d

在同一地圖上。

這工作正常,但是當我嘗試刪除B-> C時,方向仍然在地圖上。

要繪製方向我這樣做:

 directionsDisplay = new google.maps.DirectionsRenderer({ 
     suppressMarkers: true, 
     polylineOptions: polylineOptionsActual, 
     preserveViewport: true 
     }); 
     createItinerary : function(eventA, eventB, transportationMode, counter) 
     { 
      if (eventDate.getDate() == currentDay.getDate()) 
       directionsDisplay.setDirections(result); 
     } 

然後,我每次刪除一條路的時候,我打電話

if (directionsDisplay != null) 
{ 
    directionsDisplay.setMap(null); 
    directionsDisplay = null; 
} 

我可以我想每次調用它,方向奪得」即使directionDisplay爲null也不會被刪除。

我只有這個錯誤,當我有多個方向。

有什麼想法可能是錯的?

回答

1

是的,你有directionsDisplay = new google.maps.DirectionsRenderer ...在一個循環中。你必須做的是將該變量存儲在數組中。

例子(我假設一些for循環):

var directionsDisplayArray = []; 
for(var i in data) { 
    directionsDisplay = new google.maps.DirectionsRenderer({ 
    suppressMarkers: true, 
    polylineOptions: polylineOptionsActual, 
    preserveViewport: true 
    }); 
    directionsDisplayArray.push(directionsDisplay); 
} 

然後你就可以在一個循環中刪除這些顯示器

for(var i in directionsDisplayArray) { 
    directionsDisplayArray[i].setMap(null); 
} 
相關問題