2011-11-29 136 views
12

我正在處理車輛路徑問題。最近我花了一段時間瀏覽Google Maps API,看看我是否可以在同一張地圖上打印多條路線。 我想以下: ROUTE1: 點A,B,C,A 路線2 點a,d,E,F,一個 路線3 點A,G,H,A 我想每條路線都有不同的顏色折線。 有人可以幫助我。使用Google Maps 3 API在地圖上獲取多條路線

回答

23

是的,這很簡單,一旦你掌握了它。

你想使用directionsRenderer對象。

最重要的是,你希望你的路由都在數組中設置,然後你想通過循環遍歷它們。每次創建一個新的DirectionsRenderer對象,並每次將其設置爲地圖。在循環內部,您還需要創建一個新的多段線變量,每次使用不同的顏色傳遞給directionsRenderer。我使用了一些代碼來做到這一點,但目前還不知道它在哪裏。

下面是使用不同彩色多段線的人的一個例子。 :

http://www.geocodezip.com/violette_com_TestMap2c.html

如果你專注於這兩個下面的代碼行,你會看到折線顏色是如何設置的,它是怎麼也傳遞到的DirectionsRenderer。

directionsDisplayActual = new google.maps.DirectionsRenderer({suppressMarkers: true, polylineOptions: polylineOptionsActual}) 

var polylineOptionsActual = { 
     strokeColor: '#FF0000', 
     strokeOpacity: 1.0, 
     strokeWeight: 10 
     }; 

您的路線的下一個方向。 :

http://code.google.com/apis/maps/documentation/javascript/examples/directions-waypoints.html

另一個很好的例子。

var request = { 
    origin: start, 
    destination: end, 
    waypoints: waypts, 
    optimizeWaypoints: true, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
}; 
directionsService.route(request, function(response, status) { 

如果你專注於提供您將看到waypts VAR谷歌的例子上面的代碼。這就是你的中間標記將被設置的位置(如你所說的b點)。您將通過執行waypts.push(.....)來做到這一點。起點和終點將是你的a點和b點。

不應該太難把一些東西放在一起。我會建議抓住一個最接近你的需求的谷歌示例,並將其縮略爲一個簡單的項目,然後從那裏構建它。

+0

感謝您的回答。看起來,這仍然是一個單一的路線,只是有路標。你知道是否有可能 - 例如,有一條路線使用步行距離,一條路線使用駕駛距離同時? –

+0

我不明白你爲什麼不只是做兩條不同的路線。一個路由通過步行和一個路由駕駛,你會分別處理每一個,並將它們放在具有不同折線的地圖上。 –

+0

我同意@用戶史密斯,我用多段線來構建我的最終路線。示例https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/io-2010-bootcamp/v3-polyline.html?r=111 – Purusartha

相關問題