Expediente del caso

fit-maps

Simbolo de la marca de la edicion del caso
Simbolo de la marca de la edicion del caso
Periodo
2026-03 al 2026-03
Estado
completed
Visibilidad
private
Stack
Flutter, Dart, OSRM, flutter_bloc, Appwrite
  • technology:flutter
  • technology:dart
  • technology:osrm
  • technology:flutter-bloc
  • technology:appwrite
  • architecture:layered
  • domain:fitness
  • domain:routing

Evidencias · FIT-MAPS


Métricas

  • 62 commits

Repositorio

  • algoritmo propio de calibracion iterativa sobre OSRM Trip API
App movil que genera rutas circulares peatonales optimizadas para quemar un objetivo concreto de calorias, usando routing real sobre OpenStreetMap. Integracion con la OSRM Trip API y un algoritmo propio de calibracion iterativa que ajusta el radio para acercarse al objetivo calorico. Snapping de waypoints a la red peatonal via OSRM `/nearest`, heuristica de puntuacion (error de distancia, ratio de backtracking, penalizacion por carreteras principales) y fallback a circulo simple. Arquitectura por capas (presentation/services/core/config) con flutter_bloc y get_it, y CI con guardrails Android.

Expediente del caso

Motivación

Correr o caminar "una ronda" para quemar un objetivo suele acabar en improvisacion: se sale sin saber si la distancia y el desnivel daran para el objetivo. La motivacion fue una app que generara una ruta circular realista sobre OpenStreetMap calibrada para un objetivo calorico concreto.

El reto

El reto era que una ruta no se calibra por distancia sola: depende de la red peatonal real, de donde se enganchan los waypoints y de cuantos cruces o backtracking introduce el recorrido. Ademas, la OSRM Trip API resuelve el orden de visita, pero el radio que produce la distancia deseada hay que encontrarlo.

Enfoque

Se integro la OSRM Trip API con un algoritmo propio de calibracion iterativa: se ajusta el radio en pasos hasta acercarse al objetivo calorico. Los waypoints se enganchan a la red peatonal con OSRM `/nearest`. Una heuristica de puntuacion valora el error de distancia, el ratio de backtracking y penaliza carreteras principales, con fallback a circulo simple. La app se estructura por capas (presentation/services/core/config) con flutter_bloc y get_it, y CI con guardrails Android.

Aprendizaje

Calibrar contra una API real de routing obliga a una heuristica de calidad de ruta, no solo a distancia euclidea. El enganchado a la red peatonal (`/nearest`) es lo que hace que la ruta sea realista. Y la separacion por capas permitio probar el algoritmo de calibracion independiente del render.

Estado actual

Completado. El proyecto cerro con 62 commits, con el algoritmo de calibracion iterativa sobre OSRM Trip API como aportacion propia documentada en el repositorio.