2010-08-04 19 views
22

¿Cómo usaría Google Maps API para trazar una ruta? Por ejemplo, tener un montón de puntos de ruta cargados en el mapa (actualmente tengo esto) y dibujar una línea de cada uno de ellos mostrando al usuario una ruta que podrían tomar para verlos todos. ¿Cómo cargaría esto cuando el usuario vea el mapa?trazando una ruta en Google Maps

+0

Si puedo agregar algo a mi respuesta para aclarar, háganmelo saber. – RedBlueThing

+0

@Cannonade Sí, estaría bien ... lo siento ... ¿podría darme un ejemplo? un poco confundido – Skizit

+0

Implementaré un ejemplo y actualizaré mi respuesta tan pronto como tenga la oportunidad. – RedBlueThing

Respuesta

28

puede establecer el waypoints propiedad en un objeto y va a trazar la ruta desde el origen al destino a través de todos los puntos de la matriz:

Matriz de puntos de referencia intermedios. Las indicaciones se calcularán desde el origen hasta el destino por medio de cada waypoint en esta matriz.

Una vez que haya establecido los waypoints propiedad, se llama al método ruta para calcular las direcciones:

route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus))) 

vez que tenga su DirectionsResult, puede utilizar el objeto DirectionsRenderer para hacer que los resultados de un mapa de Google.

actualización con el ejemplo

de trabajo El siguiente código hace una petición dirección entre los puntos de inicio y fin codificados a través de una serie de tres puntos de referencia:

// three points through which the directions pass 
var point1 = new google.maps.LatLng(-33.8975098545041,151.09962701797485); 
var point2 = new google.maps.LatLng(-33.8584421519279,151.0693073272705); 
var point3 = new google.maps.LatLng(-33.84525521656404,151.0421848297119); 

// build an array of the points 
var wps = [{ location: point1 }, { location: point2 }, {location: point3}]; 

// set the origin and destination 
var org = new google.maps.LatLng (-33.89192157947345,151.13604068756104); 
var dest = new google.maps.LatLng (-33.69727974097957,150.29047966003418); 

var request = { 
     origin: org, 
     destination: dest, 
     waypoints: wps, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 

se puede encontrar un ejemplo de trabajo de este código here (source).

N.B. Tenga en cuenta que solo puede usar hasta ocho puntos de referencia en su matriz, a menos que cambie a una cuenta comercial.

+0

A B C aparece como marcadores en el mapa. ¿Dónde están establecidos? ¿Cómo puedo cambiar esto para que esté en blanco o para el título en el lugar? – LTech

+2

gracias por la información del límite de waypoints –

3

Puede usar un mapa estático, recorrer sus puntos y trazar los puntos usando el parámetro de ruta.

Algo así como:

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985 
+3

¿Podría compartir el código completo del que está hablando? –

0

He hecho esto en Android. Google tiene un servicio para esto aquí es el enlace https://developers.google.com/maps/documentation/roads/intro

Aquí encontrará una llamada API de ejemplo en esta página. Además de algunas instrucciones web. https://developers.google.com/maps/documentation/roads/snap

Esto es un ejemplo de llamada web al servicio. https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YOUR_API_KEY

Si la memoria sirve, creo que puede tener hasta 100 puntos por llamada y se le cobra por cada llamada, independientemente de la cantidad de puntos.

Esta llamada anterior también se puede configurar para ajustarse a las carreteras.

En cuanto a dibujar las rutas cuando se carga el mapa, esto depende de las tecnologías que esté utilizando. Sé que es fácil de ingresarNET WinForms

Si publica un comentario sobre su pregunta; dejándome saber qué tecnologías estás usando, puedo darte más consejos.

Si desea probar sus rutas de forma gratuita, me pareció un poco ingenioso sitio web: https://www.darrinward.com/lat-long/

Espero que esto ayude.