2011-11-29 22 views
12

Estoy trabajando en un problema de enrutamiento de vehículos. Recientemente he pasado un poco de tiempo yendo a través de Google Maps API para ver si puedo imprimir múltiples rutas en el mismo mapa. Me gustaría que el siguiente: Route1: punto a, b, c, a ruta 2 punto a, d, e, f, un punto ruta 3 a, g, h, un y me gustaría cada ruta para tener una polilínea de color diferente. ¿Alguien puede ayudarme con esto?Uso de Google Maps 3 API para obtener múltiples rutas en un mapa

Respuesta

23

Sí, esto es bastante simple, una vez que lo dominas.

Desea utilizar el objeto directionsRenderer.

Lo importante es que quiere que todas sus rutas estén configuradas en conjunto, y luego desea iterar a través de ellas mediante un bucle. Crear un nuevo objeto directionsRenderer cada vez y configurarlo en el mapa cada vez. Dentro del ciclo, también querrás crear una nueva variable de polilínea que pases a las instruccionesRenderer con un color diferente cada vez. Solía ​​tener algún código que hiciera esto, pero no sé dónde está en este momento.

Aquí hay un ejemplo de alguien que usa polilíneas de diferentes colores. :

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

Si se centra en estas dos líneas de código a continuación se verá cómo el color polilínea se establece y también la forma en que se pasa a la DirectionsRenderer.

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

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

Siguiente waypts para sus rutas. :

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

Otro buen ejemplo.

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

Si se enfoca en el código anterior en el ejemplo de google provisto, verá waypts var. Ahí es donde se establecerá tu marcador intermedio (como dices el punto b). Harás esto haciendo waypts.push(.....). El origen y el destino serán su punto a y punto b.

No debería ser demasiado difícil golpear algo juntos. Sugeriría que tomes un ejemplo de Google que esté más cerca de tus necesidades y que lo deslices hacia un proyecto simple y luego lo construyas desde allí.

+0

Gracias por su respuesta. Parece que esta sigue siendo una ruta única, solo con waypoints. ¿Sabes si es posible, por ejemplo, tener una ruta usando una distancia para caminar y otra para usar la distancia de manejo al mismo tiempo? –

+0

No veo por qué no harías dos rutas diferentes. Uno que se enruta caminando y otro en el que se enruta, usted procesará cada uno de estos por separado y los colocará en el mapa con diferentes polilíneas. –

+0

Estoy de acuerdo con @User Smith, utilicé polilíneas para construir mi ruta final. Ejemplo aquí https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/io-2010-bootcamp/v3-polyline.html?r=111 – Purusartha

Cuestiones relacionadas