Google » Cargar una ruta con Google Maps v3
El otro día vimos la nueva forma de cargar Google Maps en su versión 3. Y también veíamos que había cambiado su API. Así que nuestro ejemplo que Comunica dos direcciones en Google Maps se nos ha quedado un poco obsoleto (aunque sigue funcionando).
Ahora vamos a ver cómo cargar una ruta con Google Maps v3. Lo primero que haremos será cargar el API de Google Maps v3.
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
E instanciamos nuestro Mapa mediante la clase google.maps.Map:
var mapOptions = { zoom: 12, center: new google.maps.LatLng(40.674389,-4.700432), mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
Vemos que en el objeto mapOptions pasamos toda la parametrización del mapa.
Ahora vamos a definir la Ruta. Para la Ruta tenemos que saber que Google Maps v3 nos ofrece un par de objetos. El primero y más importante es google.maps.DirectionsService. Este objeto será el encargado de calcularnos una ruta y devolvernos un objeto DirectionsResult con toda la información de la ruta.
Para que el objeto DirectionsService nos calcule la ruta le tenemos que pasar un objeto DirectionsRequest indicándole la información de la ruta: origen, dsetino, forma de desplazamiento,...
var request = { origin:"Madrid", destination:"Avila", travelMode: google.maps.TravelMode.DRIVING };
Este objeto DirectionsRequest se lo pasamos al DirectionsService para que calcule la ruta. Para ello ejecutamos el método .route()
directionsService.route(request, function(result, status) {} });
El resultado del método .route() devuelve el DirectionsResult dentro del atributo result.
Una vez que tenemos el Resultado podemos hacer dos cosas. La primera será explotarlo para acceder a toda la información que contiene de las rutas y la segunda será representarlo visualmente. Para este segundo caso contamos con el objeto google.maps.DirectionsRenderer. Dicho objeto es capaz de renderizar un mapa o un texto con un DirectionsResult.
var directionsDisplay = new google.maps.DirectionsRenderer(); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsPanel"));
Para configurar el DirectionsRender utilizamos .setMap() para indicarle cual es el mapa -objeto Map- y .setPanel() para saber cual es la capa del documento HTML en la que volcar la ruta.
Solo nos quedará pasarle el DirectionsResult en la ejecución del método .route()
directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } });
Ya tenemos cargada nuestra ruta de forma visual y textual con Google Maps v3.
![]() Visualiza el artículo | ![]() Descargar el código | ![]() Error en el código | ![]() Foro sobre Google Maps |
Artículos relacionados:










septiembre 2, 2012 #
Gracias Victor pos tus aportes, yo te planteo una duda:
cuando aplico las rutas, resulta que en mi movil (htc), la barra de desplazamiento del texto
del directionpanel desaparece y tampoco se desplaza de manera tactil, por lo que solo se puede
leer el comienzo de la ruta.
Por mas que he indagado en la api de google no encuentro respuesta.
Saludos
septiembre 9, 2012 #
Hola @fernando,
El DirectionPanel en sí creo que no lleva scroll. ¿Has probado a meterle en una capa y configurar el overflow:scroll? Por si hay suerte.
Prueba también en nuestro foro por si alguien puede ayudarte.
http://www.dudasprogramacion.com/forum/google-maps
Saludos.
septiembre 11, 2012 #
[...] oto lado, las rutas de Google ya no son v2, ya son v3. Será que tenemos una manía por tenerla grande, la versión. O por que el [...]
septiembre 12, 2012 #
[...] Cargar una ruta con Google Maps v3 [...]