2016-04-01 10 views
-1

Haben ein seltsames Problem. Ich habe eine Karte mit verschiedenen Markierungen eingerichtet. Auf dem InfoWindow können Sie klicken, um "Richtungen zu erhalten", die ein onClick auslöst. Erstmalige Route wird korrekt angezeigt, aber wenn Sie auf einen anderen Marker klicken und nach dem Weg fragen ... wird die vorherige Route nicht von der Karte gelöscht Neue ist gezeichnetklare Richtung Route auf Google Maps

Ich habe schon etwas versucht, genauer gesagt Lösungen auf dieser stackoverflow question zur Verfügung gestellt, aber nichts scheint zu funktionieren.

Mein Code ist dies:

function getDirections(id) { 

     var directionsDisplay = new google.maps.DirectionsRenderer; 
     var directionsService = new google.maps.DirectionsService; 

     var start = document.getElementById('pos1').innerHTML; 
     var end = document.getElementById('pos'+id).innerHTML; 

     end = end.slice(0, -1); 
     end = end.substring(1); 

     directionsDisplay.setMap(null); 
     directionsDisplay.setMap(map); 
     directionsDisplay.setPanel(document.getElementById('directions')); 

     directionsService.route({ 
      origin: start, 
      destination: end, 
      travelMode: google.maps.TravelMode.DRIVING 
     }, function(response, status) { 
      if (status === google.maps.DirectionsStatus.OK) { 
       directionsDisplay.setDirections(response); 
       console.log(response); 
      } else { 
       window.alert('Directions request failed due to ' + status); 
      } 
     }); 

     disableMovement(false); 
     infoWindow.close(); 

     var control = document.getElementById('directions'); 
     control.style.display = 'block'; 
     map.controls.push(control); 
    } 

Und auf diesem Bild kann man sehen, was ich bin immer ... die vorherige Route nicht von der Karte gelöscht wurde, bevor die neue gezogen wurde.

enter image description here

Antwort

0

Die Antwort falls jemand es in Zukunft braucht ...

Diese:

var directionsDisplay = new google.maps.DirectionsRenderer; 
    var directionsService = new google.maps.DirectionsService; 

haben außerhalb des Click-Ereignis sein.

Verwandte Themen