2016-09-29 23 views
-1

私はこのように複数の方向を描画する必要があります同じ地図上setMap(null)を呼び出して方向を削除できないのはなぜですか?

A-> B B-> C 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); 
} 
関連する問題