Si no tienes mucha experiencia o tienes dudas con respecto a algo que usemos en este post, puedes consultar los demás ejemplos que se han realizado anteriormente aquí.
En esta ocasión veremos un ejemplo buscado por muchos, y que puede llegar a tener gran utilidad dependiendo de nuestra aplicación, estamos hablando de trazar rutas… dije ¿rutas?, si, rutas, direcciones, un pequeño GPS en web.
Lo que haremos es bastante sencillo de entender y lo pondremos de la manera más básica, esto para darte la amplitud a que lo mejores y le pongas la cara que desees.
El proceso es entendido por todos, es proporcionar 2 puntos, un origen y un destino, a partir de esto, que nos proporcione una ruta para ir de un lado a otro. Sin más preámbulo manos a la obra.
Lo primero (siempre usaremos los scripts de jQuery y GMaps) que haremos será crear el html sobre el cuál vamos a trabajar, para esto solamente requerimos 2 cajas de texto para escribir el origen y el destino, un botón para ejecutar el proceso, 2 combobox donde uno será para elegir el modo de viaje (auto, bicicleta, caminando) y el otro para elegir el sistema de medición (Métrico -mts, Km-, Imperial -ft, Mi-), por último 2 divs, uno para el espacio del mapa y otro para el panel de direcciones.
<div> <label for="origen">Origen</label> <input type="text" name="origen" id="origen" placeholder="calle, ciudad, estado..." /> <br /> <label for="destino">Destino</label> <input type="text" name="destino" id="destino" placeholder="calle, ciudad, estado..." /> <br /> <input type="button" id="buscar" value="Buscar ruta" /> </div> <br /> <h3>Opciones</h3> <div id="rutaOps"> <select id="modo_viaje" class="opciones_ruta"> <option value="DRIVING" selected="selected">Auto</option> <option value="BICYCLING">Bicicleta</option> <option value="WALKING">Caminando</option> </select> <select id="tipo_sistema" class="opciones_ruta"> <option value="METRIC" selected="selected">Métrico</option> <option value="IMPERIAL">Imperial</option> </select> </div> <br /> <div> <div id="map_canvas" style="float:left; width:70%; height:500px"></div> <div id="panel_ruta" style="float:right; overflow: auto; width:30%; height: 500px"></div> </div>
Una vez que tenemos el HTML nos enfocaremos en el la API y JS completamente, declaramos 2 objetos globales, uno es DirectionsRenderer y otro es DirectionsService. El primero nos dará las herramientas necesarias para que visualicemos en el navegador toda la información obtenida, el segundo es el servicio que buscará en las bases de datos de Google Maps tanto los puntos como la(s) rutas existentes.
var directionsDisplay = new google.maps.DirectionsRenderer(); var directionsService = new google.maps.DirectionsService();
Una vez hecho esto, escribimos el código para ya tener inicializado y dibujado el mapa en nuestra página, creamos una función con el nombre que nosotros queramos, dentro de ella, vamos a colocar lo siguiente:
var request = { origin: $('#origen').val(), destination: $('#destino').val(), travelMode: google.maps.DirectionsTravelMode[$('#modo_viaje').val()], unitSystem: google.maps.DirectionsUnitSystem[$('#tipo_sistema').val()], provideRouteAlternatives: true };
Línea por línea:
- Declaramos una variable con las opciones con las que se va a solicitar la información al objeto DirectionsServices, lo siguiente son parámetros para hacer la búsqueda de acuerdo a los datos introducidos.
- A origin se le asigna el valor de la caja de texto origen estableciendo el punto de partida de la ruta.
- A destination se le asigna el valor de la caja de texto destino con el que se especifica el punto final de la ruta.
- En la opción travelMode se asigna la opción elegida para el modo de viaje (modo_viaje), por esta razón en el valor de cada opción se definió de acuerdo al valor asignado en la API.
- unitSystem se refiere al tipo de unidades que se utilizarán para mostrar distancias, obteniendo el valor del tipo_sistema.
- Con la opción provideRouteAlternatives establecemos en verdadero o falso (por default false), para indicar que puede ofrecernos más resultados para las rutas (rutas alternativas).
Una vez declarada la variable con el arreglo de los parámetros, con unas cuántas líneas vamos a hacer la solicitud y plasmar el resultado:
directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setMap(map); directionsDisplay.setPanel($("#panel_ruta").get(0)); directionsDisplay.setDirections(response); } else { alert("No existen rutas entre ambos puntos"); } });
Recordemos que al inicio declaramos 2 objetos, teniendo en cuenta su función, les explico línea a línea:
- directionsService.route hace la solicitud a la API con los datos que previamente establecimos (request), creamos una una función interna, que recibe los parámetros de respuesta (response) que es donde vendrían contenidos los datos y un estatus (status) que indica si fue exitosa la solicitud.
- Si el estatus es OK procedemos, si no, mandamos un mensaje de error diciendo que no se pudo encontrar ruta entre ambos puntos. Existe una serie de estatus distintos, sin embargo y para efectos prácticos solamente usamos aquí el OK (para ver más tipos de status, hay que ir directamente a la documentación de la API).
- directionsDisplay.setMap(map) establece el mapa sobre el cuál será trazada la ruta, la variable map debe ser un objeto tipo Mapa, además de global.
- directionsDisplay.setPanel($(“#panel_ruta”).get(0)) indica dónde van a ser escritas las indicaciones de la ruta, aquí es necesario indicar un div disponible (panel_ruta).
- directionsDisplay.setDirections(response) hace la magia, imprime en el mapa la ruta y escribe las indicaciones de acuerdo a las 2 instrucciones anteriores.
Por último solamente creamos un par de funciones para que al hacer click en el botón busque la ruta o la redibuje si se eligen diferentes opciones, esto es opcional, si no lo quieren así hay que hacer que indicar que al hacer click, la función central se ejecute, para mi caso, la función la llamé rockAndRoll 😀
$('#buscar').live('click', function(){ rockAndRoll(); }); $('.opciones_ruta').live('change', function(){ rockAndRoll(); });
Es todo por esta ocasión, espero les ayude en sus proyectos o simplemente para jugar un rato, si quieren verlo en función denle click en el botón verde, dudas y comentarios son bien recibidos, o pueden encontrarme en twitter @jafrancov
Enjoy this Life!!
Hola,
Muy interesante, gran aporte.
Sabes si se puede pasar el destino en un parametro, poniendo unas coordenadas? Es decir que el usuario solo ponga el origen para saber donde se va a un sitio que le muestro yo?
Por otro lado, como puedo hacer para mostrar la herramienta print para que asi se pueda imprimir las indicaciones para ir al sitio?
Con este gadget sale el print.
http://maps.google.com/help/maps/gadgets/directions/
Muchas Gracias
Saludos!
@Marc gracias por el coment y te comento a lo que preguntas:
-“se puede pasar el destino en un parametro, poniendo unas coordenadas … el usuario solo ponga el origen para saber donde se va a un sitio que le muestro yo”
Si, si se puede, como lo comenté, puedes poner coordenadas o direcciones, la API los entenderá, además el destino puede estar anclado a lo que tú digas, así el usuario solamente pone su dirección origen.
-“mostrar la herramienta print para que así se pueda imprimir las indicaciones”
Para esto no hay opción con la API, necesitarías generar por tu cuenta la impresión, en esta liga hay un ejemplo de cómo hacerlo de manera sencilla, puedes intentarlo.
Saludos…
Hola Alex, tengo un problema que me está volviendo loco. tengo hecho un programa como el tuyo que me muestra una ruta desde una localidad a otra, pero una de las localidades siempre tiene que ser Oña, pueblecito de la provincia de Burgos. Supongo que por la ñ siempre me aparece el error de que no hay rutas. Como podría hacerlo para poner las coordenadas en vez del nombre del pueblo, o solucionar el tema del nombre para poner la ñ en el nombre.
Me estoy volviendo loco con el tema, y ya no se que hacer. Me harias un gran favor si me das alguna pista.
@Roberto muy sencillo, el error que tienes es por la configuración del tipo de entrada en tu html utf-8, latin, etc. pero, es mejor con las coordenadas, ve a maps.google.com y en los labs (están ahora en el engrane para configuración arriba a la derecha) activa una función que se llama “Marcador lat.-long.” con esa herramienta, en el punto que quieres en el mapa, das un click secundario y selecciona “Visualizador Lat. Lng.” esto te pondrá una especie de tool-tip con las coordenadas, solo cambia las comas por puntos, excepto la que separa la Lat. de Lng., listo, ya tienes tus coordenadas 😉
Hola, perdoname, lo estoy haciendo desde flash y tengo una linea que me crea la rura, el from lo coge de un cuadro de texto y el destino lo pongo yo a mano.
direcciones.load(“from: ” + ciudad.text + ” to: Oña”)
Como puedo poner en el destino las coordenadas, o como la harias tu, desde javascript.
Muchisimas gracias por todo, estoy atascado con la ñ.
Eureka, ya lo he conseguido, MUCHAS GRACIAS ALEX, ya me funciona, he puesto la linea así
direcciones.load(“from: ” + ciudad.text + ” to: 42.736, -3.415″ )
y ya va.
Que tal, bastante interesante y util el tutorial, pero espero puedas ayudarme, he leido poco de la api, pero no he encontrado algun metodo o funcion que me permita recorrer cada uno de los marcadores y obtener o cambiar algunas de sus propiedades en “vivo”. Dado que al crear los marcadores no hay un id o algo que me permita identificarlos en el mapa a traves de un bakcend, tienes algun ejemplo o idea de como hacerlo? gracias por tu tiempo.
Saludos
@Madness no sé exactamente lo que tratas de hacer, sin embargo, lo que yo hago es lo siguiente, esto suponiendo los marcadores los envías como un array desde el backend, transformado en un json o un xml para leerlos con JS (y jQuery) y colocarlos en el mapa:
Puedes recorrer el array con un un $.each (usando jQuery), esto te da un key o identificador de cada elemento que vas leyendo, algo como:
Espero esto te ayude, mucha suerte, saludos!
Hola buenas,
Hay alguna forma que en una web para moviles, mediante la api nos indique como llegar a unas coordenadas? Me refiero tal como lo hace la app de google.
Sino no nos puede guiar, se podria hacer que cada ciertos segundos actualize nuestra nueva posición para asi mostrarla en el mapa y asi poder ver donde estamos respeto el destino?
Muchas Gracias
Saludos!
@Marc Pues es la misma API, todo dependerá de cómo esté implementado tu diseño para funcionar con móviles, ahora, para hacer un seguimiento o tracking de la posición requerirás del uso de la API de Geolocalización de HTML5, que tengo agendado ese post para el fin de semana, sin embargo, tiene sus desventajas, ya que tendrá un uso mayor en tus datos y sobre todo en la pila de los dispositivos, ya que constantemente usará el GPS.
En cuanto tenga el post, lo comparto en todas las redes donde ando, o si quieres busca sobre la API de HTML5, está bastante sencillo en realidad, saludos!!!
Muchas gracias.
Pero la API de Geolocalizacion de HTML5 solo me dara las coordenadas donde esta el movil, però la ruta y las indicaciones para llegar me las tiene qe dar google pasandole yo el origen y destino no?
Saludos!
@Marc Es correcto, así funciona, con la API de Geolocalización de HTML5 obtienes la ubicación del usuario, una vez obtenida juegas con ellas con la API de Google Maps
Muchas gracias, me espero a ver el nuevo post!
Buscare a ver si encuentro algun ejemplo por la red!
Saludos!
Hola, muchas gracias por el ejemplo, está bien explicado.
Hice la prueba usando un proyectito de ejemplo en VWD 2010, lo probé y cheque la consola del navegador (en mi caso uso FF). En la consola me aparece un warning:
El uso de atributos ‘specified el atributo es obsoleto. Siempre regresa verdadero.
Se que no es la gran cosa pero no me quería quedar con la duda, ¿sábes a que se deberá? ¿será la versión de jQuery que uso 1.4.1?
@Ivan en qué parte o qué función es donde te regresa ese warning?
En la parte de la variable request. Creo que es cuando se define el TravelMode. Comente esa linea y ovbiamente me marco error. La volví a descomentar y se fue el error pero aparece el warning.
var request = {
origin: $(‘#origen’).val(),
destination: $(‘#destino’).val(),
travelMode: google.maps.DirectionsTravelMode[$(‘#modo_viaje’).val()],
unitSystem: google.maps.DirectionsUnitSystem[$(‘#tipo_sistema’).val()],
provideRouteAlternatives: true
};
@Ivan ahhhh… es que debes tener un combo o algún elemento donde pueda extraer el dato, puede ser DRIVING, BICYCLING, WALKING, al igual que también te marcaría error en el unitSystem que debe ser METRIC o IMPERIAL, si no obtiene valores o no los colocas por default, generará alertas, porque hace falta ese parámetro
Si tengo los ComboBox o DropDown List, así como lo pusiste en el ejemplo:
Muy buen ejemplo!! lo que si me tengo un problema que no puedo resolver y es el siguiente: necesito que mi busqueda (Origen/Destino) se haga dentro de una misma ciudad y para esto yo hago esto,
var origen = “Argentina, Cordoba, ” + document.getElementById(“origen”).value;
var destino = “Argentina, Cordoba, ” + document.getElementById(“destino”).value;
y despues asigno estos valores a origin y destination el problema es que esto no esta limitando a la búsqueda a las calles que ingrese en el formulario. Alguna ayuda¿?
@Nacho, las direcciones las toma con una estructura de: calle, colonia, ciudad, estado, país. Intenta con la calle + “Córdoba, Argentina”
Efectivamente el orden era el error. Muchas Gracias! Saludos.
Hola, muchas gracias por el aporte.
¿Alguien podría indicar el código JavaScript completo?
Por mucho que sigo el tutorial no consigo que me funcione.
¿Es necesario ”
“?
GRACIAS POR ADELANTADO!
??????????????????????
??????????????????????
??????????????????????
Origen
Destino
Opciones
Auto
Bicicleta
Caminando
Métrico
Imperial
@jacobo el JS está completo, si no, ve el demo y su código fuente, o en tu ejemplo que haces, ve el inspector de tu navegador, ahí te dirá qué error está ocurriendo. Si no, mándame tu código en la parte de contacto y te echo una mano.
Estimado, muy útil me ha sido tu ejemplo, llevo recién un par de días intruseando la API de Google y me ha gustado bastante.
Necesito realizarte una consulta, como sería posible trazar más de 2 puntos con Google maps ? me explico, Punto de Origen: A, destino: B, C, etc…
Agradecería tu respuesta. Saludos.
@Pablo si se puede tener puntos intermedios, deja hago un miniejemplo de eso y lo comparto
Hola saludos, tu codigo esta muy bien te explico ojala me puedas ayudar con este tema me compre un gps vehicular tengo el programa que captura las coordenadas y las graba en una base de datos pero me gustaria hacer que poniendo un rango de hora por decir la fecha actual de las horas 7am hasta las 8am cual fue el recorrido que hizo y solo que dibuje la linea del inicio y que poco a poco vaya dibujando el resto hasta el final, gracias por tu ayuda
@mobius para eso hay que usar la herramienta de líneas de la API, aún no hago un ejemplo de eso, pero lo programo
gracias porque aun no encuentro. estare esperando gracias
hola copie paso a paso lo que dijiste pero cargo el archivo para que funcione y cargan los textbox los botones y no el mapa
aqui va el codigo
Origen
Destino
Opciones
Auto
Bicicleta
Caminando
Métrico
Imperial
@Mauricio pues no cargará nada porque no existe la función rockAndRoll(), se te pasó ese detalle
oye es que tengo el punto de inicio y el punto final del recorrido pero quiero agregarle puntos intermedios osea otras cajas de texto para dar punto de inicio puntos intermedios y punto final del recorrido espero me puedas ayudar y muchas gracias
@miguel se require mandar un arreglo con todos los puntos intermedios, es un proceso un poquito más elaborado, voy regresando a bloggear, si me aguantas puedo hacer algo más o menos rápido y subirlo, o mándame un correo jafrancov en Gmail por favor y lo vemos más a detalle
de verdad te agradecería alex algún ejemplo con puntos intermedios de verdad que e hace falta eso para un proyecto que estoy haciendo
Que paso Alex Franco me podrias ayudar con una pagina en la que se que mi idea es asignar las ubicaciones en un combobox, cada opcion del combo va a contener la ruta de inicio y la ruta de destino!!!!
Este es el codigo de mi combo:
RUTAS::
-SELECCIONA-
TAMPICO – CD. DE MÉXICO
CD. DE MÉXICO – VERACRUZ
VERACRUZ – TAMPICO
INFORMACIÓN:
@drinsorz requieres las coordenadas del punto exacto de cada ciudad, si no, te llevará como al centro geográfico de la zona urbana, en algún punto del JS tienes que hacer la asignación de qué rutas va a seguir, con respecto a las coordenadas de todos los origenes/destinos, para que al momento de elegir la opción ‘X’ mediante JS asignes las coordenadas origen/destino y la API te marque la ruta.
Gracias!!!
ya me quedo!!!
Me sirvió mucho tu ejemplo!!!
Gracias por el ejemplo, esta muy bueno, solo queria saber si se puede tener puntos intermedios (a,b,c) y como se harian estos.
Saludos!
@juan es mediante el uso de waypoints, la API solamente permite hasta 10 Waypoints para usuarios regulares… déjame desarrollo un ejemplo.
hola una pregunta, ya seguí tus ejemplos y andan perfecto los hice en una aplicacion javascrit, ahora mi pregunta es puedo integrar esto en una aplicacion de ASP.NET?
@Juane claro, mientras sea web, el navegador entiende HTML y Javascript, entonces solamente agrega el código necesario en tus vistas y listo, funcionará sin problemas.
Hola Alex. Antes de nada muchas gracias, es un ejemplo muy muy bueno.
Tan solo tengo una duda. Me gustaría cambiar el contenido del infobox de destino, y que no saliera el valor del imput.
He visto que en uno de los comentarios te referías a algo así, pero no lo he encontrado, no sé en qué archivo está ni el código exacto.
Muchas gracias por todo!
@takuto claro, es bastante sencillo, solamente es necesario tener las coordenadas del lugar de destino para que no haya problemas, la variable request quedaría algo así:
Además de esto, quitas el input de destino y es todo, con eso tendrá el usuario solamente que poner el lugar de salida.
Gracias Alex, ahí intentaba cambiarlo, pero no me salía como yo quería. He puesto tu código y tengo un problema, en vez de salir el número de la vivienda, sale un intervalo. Por ejemplo, digamos que antes salía el 7, y ahora sale 2-10.
Lo que me gustaría hacer es poner el texto que yo quiera a mi gusto, en un html, por ejemplo “Hola soy pepito el de los palotes y una foto al lado de pepito” jejeje.
No sé si me entiendes o me explico demasiado mal jajaja.
Muchas gracias de nuevo.
Un saludo
Te quería dar las gracias Alex, porque me va todo a la perfección. Eres una máquina!!
Muchas gracias de nuevo.
Un saludo!!
Hola Alex. Tengo algunas dudas, con base en este ejemplo como limito la búsqueda del origen y destino a una ciudad?
Y como hago que por medio de la geolocalización del usuario ese punto se me convierta en mi origen, en este caso que coloco en la parte de var request={ origin: “punto localizado”; ……
@shirly140 Para que limite a una ciudad, puedes forzarlo a terminar con el nombre de tu ciudad, algo así:
Y la variable varAddress es la que mandarás como origen y/o destino, y para usarla con geolocalización necesitas ver este post para obtenerla con HTML5, solamente hay que convertir las coordenadas a un objeto Latlng.
Hola Alex, oye una duda para ti que eres todo un experto en cuestión de mapas digitales, trabajo para una empresa pequeña, tenemos 7 productos solamente, y como 700 clientes a detalle, y lo que deseaba era ver si podría marcar en un mapa en forma digital a cada cliente, tenemos 8 camionetas pequeña de reparto, y de alguna manera ligar o identificar que dicho cliente pertenece a la camioneta numero 1 por ejemplo.
Podría lograr lo anterior con algún software o ya existe algo y solo trabajar en el?
De antemano gracias por tus comentarios.
@catarino si hay manera de identificar cada punto, depende de cómo tengas tu lógica de programación y si tengas un campo en tu base de datos que permita identificar cada uno de los vehículos. Existe software si, pero usualmente cuesta bastante, aunque te repito, si tienes lo que te mencioné al inicio, solo es desarrollar un poco más.
Gracias, Alex, la verdad que tengo solo los datos en Excel, y son datos básicos, como nombre del negocio, calle, colonia, ciudad, estado, país, y el identificador del vehículo.
Probablemente con un ejemplo sencillo, yo le podría continuar con el resto
Hola Alex,
Sabes con que api se puede hacer un mapa como ese?
http://www.lilla.com/ca/mapa
Gracias
Saludos
Claro, es con Indoors aquí la liga
Hola Alex, segui los pasos, copie el codigo fuente de la pagina, pero no me carga el mapa.
Me podras dar una mano? este es mi script.
**código editado**
$(“#search”).live(“click”,function(){ getDirections();});
**código editado**
El error que me tira el chrome es uncaught referenceerror $ is not defined en la linea $(“#search”).live(“click”,function(){ getDirections();});
Desde ya, muchas gracias!
@Javier Sencillo (disculpa la tardanza), no declaraste el ID search en tu HTML, en la línea que dejé intenta hacer una referencia a un ID que no existe, por eso marca el error.
hola alex perdona por la pregunta pero me gustaría saber en que momento de las funciones del ejemplo ¿le estas diciendo que te visualice el mapa en map_canvas?
Eso es de las cosas básicas, ya en estos post, solamente me enfoco en la parte central del tema, si no, el código sería grandísimo checa este post y ahí verás dónde http://jafrancov.com/2010/08/bases-gmaps-api-v3/
¡Gracias por el script / tuto, pedazo de crack!
Además, veo que estás respondiendo a las consultas de la gente, cosa que poca gente hace 🙂
Sigue así, artista, y de nuevo, ¡gracias!
Saludos Alex hay alguna forma de que pueda mostrar mis propios iconos y no los que están por defecto A Y B? Hablo de los iconos de los marcadores, espero me ayudes con tu respuesta.
Es un poquito complejo para un comment pero acá hay un lugar que te puede ser de ayuda
Hola
Excelente el tutorial.
Estoy haciendo una aplicación un poco grande, y quiero saber si puedo meter mis propias paradas de buses minibuses y a partir trazar su ruta del bus. Por la razón de que en mi país es poca la información en cuanto a esos recursos de buses y microbuses, hay con que trabajar.
como te digo soy nuevo en google maps estoy leyendo mucho acerca del tema siempre buscando buenas opiniones con lo que puedo trabajar, me serviría mucho tu opinión mas que todo para definir alcances limites.
@Amilkar no creo que la opción de rutas sea lo más viable para tu proyecto, ya que los buses usualmente tienen rutas que no van a concordar con las que te pudiera ofrecer la API, puedes subirte a uno y registrar con un GPS (un smartphone de preferencia) la ruta que sigue, guardarlas en una BD y dibujar una polilínea, eso te ahorrará muchas llamadas a la API y poder modificarla en caso de que así se requiera.
Mil gracias por la ayuda, estuve leyendo sobre lo que me dijiste y si parece lo mas viable.
hola quisiera hacerte una pregunta ya avance en esta parte de aprender pero me falta aun mucho.
si tuviera dos direcciones una “donde estoy” otra “a donde quiero llegar”, podría hacer que la aplicación me diga que autobús me podría llevar o acercar “a donde quiero llegar”.
claro puse algunos autobuses en una base de datos usando polilíneas. De acuerdo a esa base de datos hacer lo que en el párrafo anterior dije.
Hola Alex!
Realmente son muy utiles tus ejemplos. Me han ayudado muchisimo.
He intentado la función de autocompletado de lugares en este ejemplo pero sin extito tadavía. Podrías ayudarme con eso.
@Anibal déjame ver si puedo hacer un post al respecto, ya que si requiere algo de explicación el autocompletado jeje…
amigo, buscaba esto con urgencia…. necesito que me ayudes…. con que trabaja esto? dobnde inserto este codigo…
las variables globales, el form… alguna ayuda…
o tienes el ejemplo descargable…. lo agradeceria bro!
saludos
@Claudio oops… busca los ejemplos anteriores o ve el demo, las cosas se insertan en lugares diferentes, para esto hay que tener un poco de conocimiento de HTML y Javascript
Hola tengo un proyecto en desarrollo me gustaria contactarte.. para solicitar tu asesoria y apoyo en el uso de una funcion llamada “como llegar” el uso de los marcadores A y B a libre manipulacion del usuario asi como la impresion de los resultados de ruta y km en el sitio web …. espero ponernos en contacto te dejo mi correo .. quedo al pendien y me despido agradeciendo esta util informacion que aqui compartes 😀 saludos!
José Luis Paredes C.
Dir. PCDATA COMPAÑY
@JoseLuis Ya te mandé un correo a la dirección que pusiste, a ver si lo puedes ver y seguimos la conversación por allá, gracias!
Buen aporte Amigo, tengo una pregunta estoy realizando pruebas a la api de google y quería saber si es posible que al momento de crear una ruta indicar unos tramos o puntos por donde no quiero que pase esa ruta.
@Jairo Desafortunadamente eso no es posible, tienes la opción de usar rutas alternas o hacer la ruta “arrastrable”, pero después tendrías que hacerlo manualmente. Otra alternativa es con puntos intermedios, pero esto lo estoy preparando para otro post, ya que hay que explicar un poco más.
Listo gracias.
Como puedo hacer si quiero recorrer las rutas alternativas he buscando y no encuentro la manera de obtener todas las rutas entre dos puntos.
Gracias de nuevo.. Esperare el post sobre las rutas alternativas
Que tal esta muy bueno tu trabajo, ahora estoy haciendo una variante para desplegar resultados de busqueda en base a los registros que se encuentran a en la base de datos y un radio de kilometros a partir de donde se encuentra el usuario, alguna herramienta lo puede hacer dentro de esta api?
@Edgar esa búsqueda la puedes hacer con SQL, no existe alguna función que lo haga directamente en la API (al menos hasta ahora), déjame buscar esa consulta hace un rato que la hice para algún proyecto.
Sabes como colocar una lista con algunas ubicaciones y cuando le de un click me muestre en el mapa la ruta desde donde estoy hasta el lugar destino.
Ya tengo que cuando pongo la direccion me marca la ruta desde donde estoy hasta el destino, pero no logro hacerlo en una lista con varias localidades.
Gracias
@Genaro si la API no tiene un registro exacto del lugar, no lo localizará, es mejor tener las coordenadas si es que los lugares son fijos.
Cual es la url de la api de google para que funcione el codigo???
@esteban el código es:
Puedes checar los posts anteriores, ahí puedes encontrar información más básica.
Estimado, me ha funcionado bien el trazador de rutas, gracias por la info. Tengo una consulta:
El codigo me entrega las posibles rutas, y los km asociados, pero ademas quiero trabajar con los km de la ruta que el usuario escogió.
Me explico, por ejemplo google me estrega 3 rutas, r1 con km1, r2 km2 y r3 km3 , el usuario preciona la ruta que mas le satisface, entonces yo quiero saber que opción elegió para saber cual es el km asociado y trabajar con ese kilometraje…he buscado en foros y la api de google pero no he tenido exito…ojala conozcas como lograrlo…saludos desde Chile
@esteban deja me hago un post de eso, tiene su chiste
Hola tenia un codigo en mi pagina, tan sencillo como esto.. y ahora que la version de Google cambió, no se si es necesario cambiar todo… Te paso mi jquery y espeor tu ayuda porfavor!
Gracias..
— código —
@Marcelo en efecto, tu código necesita ser completamente actualizado, ya que la versión 2 de la API ha quedado en desuso.
Hola amigo, gracias por tu aporte, tiene buena funcionalidad.
Saludos
Hola muy bueno el tutorial! tengo una consulta a ver si me podes orientar, necesito para un sitio hacer un mapa q es de una ciudad en particular, y quisiera q el mapa muestre un recorrido desde un punto fijo de origen hacia muchos lados, eso puede variar dependiendo el dia, y en cada marcador que aparezca el clima actual, estaba investigando con openweather, pero lo q no encuentro es como hacer porq el mapa se dibujaria con los viajes a realizar en ese dia, y esos puntos los obtengo desde la bd, como podria ser??el mapa no quiero q pueda elegir destino solo informaria el recorrido desde un origen y al pasar por el marcador muestra el nombre y el clima..gracias
hola gracias por subir esto , me sirvio .
tengo un problema con el contenedor de las especificaciones de la ruta , porqe necesito una funcion o algo qe me borre el contenido de ese div. si me podes responder en esta semana te agradeceria
ya pude hacerlo , no se molesten , gracias = por lo del mapa me sirvio!!
Muchas muchas gracias!! Me ha servido de mucho! muy buen trabajo
Hola Alex excelente trabajo!!!! Tee hago unas consultas existe forma de exportar la ruta a un kml o ver u obtener lo que va dentro del KML?
Hola, me ha parecido muy interesante tu artículo.
Tengo una duda:
¿Se podría usar como origen de la ruta unas coordenadas en vez de una dirección?
Lo digo porque estoy desarrollando una página que usa la ubicación actual del usuario para crear una ruta a la del cliente.
Si no fuera así, ¿cómo obtendría esa dirección?. Las coordenadas las obtengo del navegador con la API de geolocalización.
Gracias por tu tiempo y un saludo
Si, si puedes usar coordenadas, Google las interpreta de igual manera, deben ser lat/lng
Hola que tal compañeros estoy itentando hacer una geolocalizacion tal cual lo muestran qui pero mi sistema es responsible web con boostrap con el sistema de rejillas y deseo que el mapa me salga tambien responsibe y no logro como alguna idea ?
El div que contiene tu mapa debe llevar las clases de bootstrap de acuerdo a tu diseño.
Hola Alex Buen dia,
Excelente post, todo bastante claro, simple y conciso, me ha sido de bastante ayuda, espero sigas poniendo post igual de interesantes y también explicados como este.
Saludos.
Hola Alex sabes tu post me sirvio de base para muchas cosas pero ahora estoy buscando la forma de poder cambiar el color y la forma en que se muestra la ruta y no la por defecto celeste en gmasp cuando pones travel.mode Walking te sale punteado pero en la api no encuentro dodne cmabiar la linea celeste por el punteado gracias por la ayuda y respuesta
Sencillo:
var directionsDisplay = new google.maps.DirectionsRenderer({
polylineOptions: {
strokeColor: "red"
}
});
Hola Alex,
Muchas gracias por tu ayuda, quería hacerte una consulta, sabes por un casual chrome ahora ya no permite obtener la ubicación del usuario? Muchas gracias
Si lo permite, acabo de revisar, en todo caso ¿qué es lo que intentas realizar?
Muchas gracias Alex, el tema es que tengo un script que obtiene la localización a través de getCurrentPosition() pero ahora ya no funciona en chrome, En la consola aparece el siguiente warning: “getCurrentPosition() and watchPosition() are deprecated on insecure origins.”
Muchas gracias por tu rápida respuesta!
Hola amigo como estas, muy interesante tu codigo, me gustaria utilizarlo pero tengo varia preguntas
en vez de dar click en buscar las rutas, es posible que al colocar las direcciones desde una base de datos als muestr el mapa y las dibuje tal como esta el ejemplo:
por favor me puede indicar como hacerlo.
Saludos
Johan
Si es posible, tendrías que usar ajax. En tu backend crear una función que regrese un json y leerlo con javascript a través de ajax, ya con los datos enviarlos a la función que traza la ruta.
Hola Alex, muy bien explicado tu trabajo
Tengo una pregunta, si es posible generar una matriz de distancias , es decir, ingresar varios origenes y destinos , y que muestre las distancias entre estos puntos
Puedes hacerlo con la librería de matriz de distancias, primero tienes que incluir la librería en tu script de GMaps
Y después
Ojo, la distancia es en línea recta y esférica de acuerdo a la curvatura de la Tierra, según datos de google.