🗺️ Cómo agregar rutas y marcadores en mapas para apps de delivery o taxis

En este tutorial se explica cómo crear un proceso reutilizable para dibujar rutas y marcadores en un mapa, algo muy usado en apps de:

  • :truck: Delivery
  • :taxi: Taxis
  • :round_pushpin: Seguimiento en tiempo real
  • :compass: Geolocalización

La idea es crear una función simple que reciba:
:point_right: Dirección de origen
:point_right: Dirección de destino
:point_right: El mapa

Y automáticamente dibuje la ruta y los marcadores.


:dart: Objetivo del proceso

Mostrar en el mapa:

  • :round_pushpin: Marcador de origen
  • :round_pushpin: Marcador de destino
  • :motorway: Ruta entre ambos

Este proceso se reutiliza en muchas pantallas de una app.


:ladder: Paso a paso del proceso

:one: Preparar el mapa y las direcciones

Primero se tiene:

  • Un mapa en pantalla
  • Dos campos de texto (origen y destino)
  • Datos guardados en base local o base de datos

:bulb: Las direcciones pueden venir de:

  • Base de datos
  • GPS
  • Usuario
  • Pedido de delivery

En el ejemplo, se guardan en base local para ver cambios en tiempo real.


:two: Enviar datos al proceso

El proceso necesita:

  • Latitud origen
  • Longitud origen
  • Latitud destino
  • Longitud destino
  • El elemento mapa

:warning: Importante:
El mapa siempre debe enviarse como call element completo.

Si no se envía así, el proceso no funcionará.


:three: Dibujar la ruta en el mapa :motorway:

El sistema calcula la ruta entre origen y destino.

Luego modifica el mapa:

  • Agrega la ruta
  • Usa latitud y longitud
  • Se dibuja automáticamente

Por defecto:

  • Ruta roja
  • Marcadores rojos

:four: Agregar marcadores :round_pushpin:

Se colocan dos marcadores:

  • Origen
  • Destino

Cada marcador necesita:

  • Latitud
  • Longitud

Esto permite ver en el mapa:

  • Dónde inicia el recorrido
  • Dónde termina

:five: Automatizar el proceso en tiempo real :arrows_counterclockwise:

Cuando se actualizan las direcciones:

  • Se guardan en base local
  • Se ejecuta el proceso
  • El mapa se actualiza solo

:bulb: Ideal para tracking en vivo.


:wrench: Opciones avanzadas del proceso

:art: Cambiar color de la ruta

Puedes enviar:

  • Color personalizado
  • Estilo de ruta

Ejemplo:

  • Ruta azul
  • Ruta verde

:warning: Si no se configura bien, no cambia el color.
Hay que enviar correctamente la propiedad dentro del mapa.


:framed_picture: Cambiar iconos de marcadores

Puedes usar:

  • Icono conductor
  • Icono cliente
  • Logo personalizado

Esto se configura enviando imágenes al marcador.

:bulb: Recomendación: guardar imágenes en Firebase o base de datos.


:label: Agregar nombres a los marcadores

Puedes mostrar:

  • Nombre del conductor
  • Dirección destino
  • Nombre del usuario

Ejemplo:

  • “Driver”
  • “Casa”

:motorway: Usar múltiples rutas en un mismo mapa

Esto es clave :point_down:

Cada ruta tiene un nombre interno.

Si usas el mismo nombre:
:x: Se sobrescribe la ruta anterior

Si usas nombres distintos:
:white_check_mark: Puedes mostrar varias rutas

Ejemplo:

  • Ruta conductor → tienda
  • Ruta tienda → casa

Esto se logra enviando un nombre de ruta único.


:gear: Cómo funciona internamente

El proceso modifica propiedades del mapa:

  • routes.nombreRuta.origin.lat
  • routes.nombreRuta.destination.lat
  • markers.nombre.lat
  • markers.nombre.lng

Se usan concatenaciones para indicar qué parte del mapa modificar.

:bulb: Es una estructura dinámica para reutilizar el proceso.


:stopwatch: Centrar el mapa correctamente

Después de crear los marcadores:

Se recomienda agregar un delay de 1-2 segundos.

Luego ejecutar:
:point_right: center markers

¿Por qué?
Porque a veces el mapa intenta centrarse antes de que los marcadores existan.


:brain: Buenas prácticas

:heavy_check_mark: Enviar siempre latitud y longitud
:heavy_check_mark: Enviar el mapa como elemento completo
:heavy_check_mark: Usar nombres únicos para rutas
:heavy_check_mark: Guardar iconos en base de datos
:heavy_check_mark: Agregar delay antes de centrar


:rocket: Casos de uso reales

Este proceso sirve para:

  • Apps de taxi
  • Apps de delivery
  • Seguimiento de repartidores
  • Tracking en tiempo real
  • Mapas logísticos

Es una función que se reutiliza en muchas pantallas.


:question: Dudas comunes

:thinking: ¿De dónde salen las direcciones?

De base de datos, GPS o inputs del usuario.

:thinking: ¿Puedo usar varias rutas?

Sí, usando nombres distintos para cada ruta.

:thinking: ¿Puedo cambiar iconos?

Sí, enviando imágenes personalizadas.

:thinking: ¿Es complejo?

No. Es un proceso simple pero muy reutilizable.


:checkered_flag: Conclusión

En este tutorial se creó un proceso para:

  • Dibujar rutas
  • Agregar marcadores
  • Personalizar mapas
  • Reutilizar lógica

Es una función esencial en apps con geolocalización.

Aunque es sencilla, se usa constantemente en proyectos reales.

Síguenos para más contenido de desarrollo y no-code

Web: https://www.lionsoft.app/

TikTok: TikTok - Make Your Day

Facebook: LionSoft - Casa de desarrollo | San Francisco CA

Telegram: @lionsoftapp