Cómo mostrar lineas de ruta sin API de Google

En ocasiones se necesita generar lineas de ruta y esto puede resultar un poco costoso con la API de google maps, por ello es posible ocupar una solución gratuita gracias al servicio de OSRM, les dejo el video:

3 Me gusta

Buenos días .
¿Hay alguna forma de una vez teniendo las coordenadas (ruta con varias paradas), se obtenga la distancia en km (que representaría la línea roja en el mapa) o en su defecto saber el recorrido real (km y tiempo ) que realizó un chofer en un viaje.

saludos

Podrías ir sumando las distancias de punto a punto, para que te dé la distancia total, lo de los tiempos por el momento se me curren dos cosas, la primera, llegando a uno de los puntos, presione un botón, para decir que ya se terminó la prime ruta, y ahí se guarde el timestamp y despues hacer la diferencia del punto de partida al de llegada, hacer las diferencias, sumar y transformar en horas.
la segunda que cuando llegue al punto, se accione lo de guardar el timestamp, pero ahí tendrias que estar constantemente llamando la ubicación del conductor y te consumiría varios recursos

De hecho creo que hay una forma de hacerlo, pero sería con la otra función del OSRM que es “Order Waypoints”. Esta te puede generar una ruta con varias parada y dentro de lo que te arroja esta función hay un arreglo del tipo route.coordinates. Este arreglo trae todas las coordenadas que debe seguir la ruta para pasar por todos los puntos.

Deberías formatear estas coordenadas y aplicar un forEach a cada para de coordenadas y sacar la distancia con un getdistance e irlo acumulando en una variable hasta el punto final.

Saludos
Ronald

1 me gusta

Tengo mi app de paqueteria y me gustaria saber como añadirle a esta funcion la funcion de la base de datos que ya tiene el origen y el destino, pues es para optimizar el proceso, ya que el usuario no va a poner latitud y longitud del origen y el destino.

Puedes hacer una lectura de la base de datos y pasárselo directamente, cuando se crea una solicitud de envió, guardas la latitude y longitude de donde lo recogerá (Origen) y una latitude y longitude de donde lo entregara (Destino), si ya tienes esos datos en la base de datos, lees con un Get DB ya sea local o OnCloud, dependiendo donde tengas la información y en el data obtenied, colocas esa función de Route, y le colocas la lectura del GetDB(latitude), y así con todas.

Como nota que ese Get debes de estar leyendo con el identificador de ese viaje, ya que si dejas vacío el identificador, no te traerá nada en los valores

1 me gusta