2012-01-28 63 views
6

我想在同一地圖上顯示多條路線,但無法這樣做。在谷歌地圖上顯示多個路線

不管我做什麼,我只得到一條路線。

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

任何指針都會有幫助。

回答

0

您是否嘗試如下?
這裏我捕獲了一條路徑並顯示它。你可以通過編寫pointsArray = result.routes[1].overview_path;來做同樣的事情,並將它顯示在一個新的循環中。

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

是做這個result.routes [1] .overview_path;沒有給我第二條路線。 – 2012-02-04 19:51:28

+0

@AJ。也許在這種情況下沒有第二條路線?你有沒有嘗試過所有這些與一些不同的座標系嗎?無論如何,你可以在這裏展示你的實際代碼(包含result.routes [1] .overview_path)供其他人測試嗎? – 2012-02-06 03:40:48

+0

謝謝Anisha。是的,有3條路線可用。我會在這裏粘貼我的代碼片段。 – 2012-02-08 12:46:18

14

我有同樣的問題。谷歌地圖上的Google地圖上的This thread顯示瞭如何執行此操作。

作者(谷歌的員工),寫了這個:

您應該能夠創建兩個的DirectionsRenderer對象,每個 使用相同的地圖和不同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'); 

我嘗試過了,它的工作。