2012-01-28 22 views
6

Aynı harita üzerinde birden çok rota görüntülemeye çalışıyorum ancak yapamıyorum.Google harita üzerinde birden fazla rota görüntüleme

Ne yaparsam yapayım, sadece bir yol alırım.

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); 
      } 
     }); 
     } 

Herhangi bir işaretçi size yardımcı olacaktır.

cevap

0

Aşağıdakileri denediniz mi?
Burada bir yolu yakaladım ve görüntüledim. Bunun yanında pointsArray = result.routes[1].overview_path; yazarak ve bunu yeni bir döngüde göstererek de yapabilirsiniz.

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

evet bu sonucu yapıyor.routes [1] .overview_path; bana ikinci rotayı vermiyor. –

+0

@AJ. Belki bu durumda ikinci bir yol yoktur? Bütün bunları farklı koordinat kümeleriyle denediniz mi? Her neyse, gerçek kodunuzu test etmek için buraya (result.routes [1] .overview_path içeriyor) burada gösterebilir misiniz? –

+0

Teşekkürler Anisha. Evet mevcut 3 yol var. Kod snippet'imi buraya yapıştırırım. –

14

Aynı sorun vardı. Google haritaları için bir Google grubunda This thread, nasıl yapılacağını gösterir.

yazar (bir Google çalışanı), yazdığı bu:

İki DirectionsRenderer nesneleri aynı harita ve farklı DirectionsResults kullanmak her oluşturmak mümkün olmalıdır.

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'); 

Ben denedim ve çalışır.

İlgili konular