2012-01-28 23 views
6

Próbuję wyświetlić wiele tras na tej samej mapie, ale nie jestem w stanie tego zrobić.Wyświetlanie wielu tras na mapie google

Bez względu na to, co robię, otrzymuję tylko jedną trasę.

function calcRoute() { 
     var start = document.getElementById('start').value; 
     var end = document.getElementById('end').value; 
     var request = { 
      origin: start, 
      destination: end, 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 
     directionsService.route(request, function(response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      } 
     }); 
     } 

Wszelkie wskazówki będą pomocne.

Odpowiedz

0

Czy próbowałeś w następujący sposób?
Oto przechwyciłem jedną ścieżkę i wyświetlono ją. Możesz zrobić to samo, pisząc poza tym pointsArray = result.routes[1].overview_path; i wyświetlić go w nowej pętli.

directionsService.route (request, function (result, status) 
     { 
      if (status == google.maps.DirectionsStatus.OK) 
      { 
       directionsDisplay.setDirections (result); 
       pointsArray = result.routes[0].overview_path; 

       var i = 0; 
       var j = 0; 

       for (j = 0; j < pointsArray.length; j++) 
       { 
        var point1 = new google.maps.Marker ({ 
                position:pointsArray [j], 
                draggable:false, 
                map:map, 
                flat:true 
                }); 
       } 
      } 
     }); 
+0

tak robi to result.routes [1]. Overview_path; nie daje mi drugiej drogi. –

+0

@AJ. Może w tym przypadku NIE ma drugiej trasy? Czy wypróbowałeś to wszystko z różnymi zestawami współrzędnych? W każdym razie, czy możesz przedstawić tutaj swój aktualny kod (zawierający result.routes [1] .overview_path), aby inni mogli go przetestować? –

+0

Dzięki Anisha. Tak, dostępne są 3 trasy. Wkleję mój fragment kodu tutaj. –

14

Miałem ten sam problem. This thread w grupie Google mapy Google pokazuje, jak to zrobić.

Autor (pracownik Google), napisał:

powinien być w stanie utworzyć dwa obiekty, każdy DirectionsRenderer że użyć tej samej mapy i różne DirectionsResults.

var map = new google.maps.Map(document.getElementById("map_canvas")); 
function renderDirections(result) { 
    var directionsRenderer = new google.maps.DirectionsRenderer; 
    directionsRenderer.setMap(map); 
    directionsRenderer.setDirections(result); 
} 

var directionsService = new google.maps.DirectionsService; 
function requestDirections(start, end) { 
    directionsService.route({ 
    origin: start, 
    destination: end, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }, function(result) { 
    renderDirections(result); 
    }); 
} 
requestDirections('Huntsville, AL', 'Boston, MA'); 
requestDirections('Bakersfield, CA', 'Vancouver, BC'); 

próbowałem i to działa.

Powiązane problemy