2011-11-29 118 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

相关问题