Trazar una ruta de un punto a otro en Google maps y Android

Trazar una ruta de un punto a otro en Google maps y Android

Trazar una ruta de un punto a otro en Google maps y Android
5 (100%) 5 votos

Hoy vamos a ver como trazar una ruta de un punto a otro en un mapa de Google Maps pero implementado para aplicaciones moviles con Android, el resultado de esta implementacion es el que se mira en la imagen del post.. Teniendo nuestro mapa de google ya implementado simplemente obtendremos ambos puntos, tanto el destino como el origen y pintaremos la ruta para llegar desde el punto A hasta el punto B.

Como mencionamos anteriormente este post no cubre como crear una aplicacion android o incrustar el mapa, unicamente abordaremos el codigo necesario para obtener el punto A y el punto B hasta donde queremos llegar, la forma de mandar a Google estos puntos para obtener un conjunto de puntos para dibujar una poligono.

Para comenzar:

donde mGoogleMap es nuestro mapa ya implemantado, establecemos nuestro destino y origen (en el codigo para el origen obtenemos la posicion de un marcador llamado origen que refleja la posicion actual del usuario ) y finalmente mandamos llamar el metodo obtenerDireccionesURL que menciono a continuación y mandamos ejecutar una tarea de descarga en segundo plano.

El metodo obtenerDireccionesURL es el  siguiente:

En este metodo lo que hacemos es construir la url que mandaremos al web service de google maps para obtener una serie de puntos con la ruta a seguir, o pintar en este caso.


Suscríbete!

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.

Suscríbeme

Recordando que esta ruta que obtenemos con el metodo obtenerDireccionesURL lo mandamos a una tarea de descarga en segundo plano, esta tarea de descarga es como sigue:

Aqui lo que hacemos es conectar con el web service y obtener el resultado, que cabe recalcar lo solicitamos en formato JSON, despues mandamos llamar una tarea asincrona para interpretar el resultado, mismo que le pasamos como parametro.

El codigo para ParserTask es el siguiente:

El codigo de la clase DirectionsJSONParser es el siguiente:

 

Por ultimo lo que hacemos aqui es interpretar el resultado del web service de Google Maps al que le mandamos nuestros puntos, crear los puntos que conforman la ruta desde el punto A hasta el punto B, darles un ancho y un color para para al final agregarlo todo al mapa como una poyline.

Actualización:

Me olvide agregar la definicion del metodo fdf, la dejo a continuación:

Para más informacion del web service de Google maps.

Cualquier duda o comentario puedes dejarme un comentario y con gusto te ayudaré a resolverla.

Saludos!

 

Trazar una ruta de un punto a otro en Google maps y Android
5 (100%) 5 votos

Dejar un comentario

17 Comments on "Trazar una ruta de un punto a otro en Google maps y Android"

avatar
  Subscribe  
Notify of
Ani
Guest

Hola me confunde no saber donde colocar el código

Vlady
Guest

Lo he probado y funciona bien … muchas gracias eres un capo

Daniel Jaramillo
Guest

Hola Buenas noches,
Cuando intento ejecutar todo, al poner el destino, me marca un error. La pregunta mía es, en donde puedo poner a ejecutar la primera parte? En el onCreate? Por fuera? El proyecto que estoy realizando, es ingresando las coordenadas por campos Autocompletados.

Espero que puedas ayudarme.
Gracias.

Laura
Guest

Hola,
Tengo un problema con el código, después de calcular la latitud, comienza a buscar la longitud pero se queda en un bucle infinito. Estás seguro que el código para calcular ambas debe ser exactamente igual?? (En la función decodePoly en el DirectionsJSONParser)
Gracias.

LEONARDO SANTOS
Guest

hola, necesito un codigo como este pero tengo una duda : yo necesito que al abrir la aplicacion salga mi ubicacion y me de la opcion de escribir un lugar de destino, para que posteriormente me muestre la ruta.

Javier
Guest

Hola!! Por alguna razón después de usar el API varias veces me da un error y no pinta la ruta.
Dice que se agotaron el numero máximo de solicitudes diarias y que debo registrar una nueva key, pero no se si es en la aplicación de android o donde es.
Gracias!!

Ignacio
Guest

muchas gracias capo! funciona 🙂

Ignacio
Guest

y la solucion al error? data = downloadUrl(url[0]);

Dario
Guest

data = downloadUrl(url[0]); me sale error

Antonio Figueroa
Guest

pudiste solucionarlo?

Emanuel
Guest

Hola, el DirectionsJSONParser que es? porque me sale el mensjae de CAN NOT SOLVE, espero me ayudes
Saludos! gracias