2012-01-12 113 views
2

我想在谷歌地圖上繪製多條多段線,用於多條路線。 這個我使用google.maps.DirectionsService如何在Google地圖中顯示多個多段折線?

function drawPolyline(source,destination,waypoints){ 
     // show route between the points 
     directionsService = new google.maps.DirectionsService(); 
     directionsDisplay = new google.maps.DirectionsRenderer(
     { 
      suppressMarkers: true, 
      suppressInfoWindows: true 
     }); 
     directionsDisplay.setMap(map); 
     var request = { 
      origin:source, 
      destination:destination, 
      waypoints:waypoints, 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 
     directionsService.route(request, function(response, status) 
     { 
      if (status == google.maps.DirectionsStatus.OK) 
      { 
       directionsDisplay.setDirections(response); 

      } 
     }); 

     } 

但是當我多次調用該方法,只有最後的折線出現。 和我想要不同的多段線的不同顏色。

回答

2

路線可以讓你檢查路線: http://code.google.com/apis/maps/documentation/javascript/directions.html#InspectingResults

的的DirectionsResult對象有和路線的[]數組,它可以讓你獲得一組編碼的折線,構成了路徑:

if (status == google.maps.DirectionsStatus.OK) 
      { 
       directionsDisplay.setDirections(response); 
       myRoutes[]=response.routes[]; 

      } 

您可以使用routes []數組來構造Polyline疊加層,如Scottux提到的。

+0

其實這是錯誤的。 「路線」數組包含相同路線的不同選項,而不是不同的路線。從[文檔](https://developers.google.com/maps/documentation/javascript/directions#DirectionsResults):「通常,對於任何給定請求,只返回一個路由,除非請求的provideRouteAlternatives字段設置爲true,其中可能會返回多條路線。「 在使用DirectionsRenderer時,不可能自定義腿,您必須爲此創建單獨的折線。 – 2014-03-15 20:25:38