Lo que empezó como un vuelo terminó en una app

Captura de GeoFlight Planner con una misión sobre la Biblioteca El Tintal, Bogotá. Imagen base de Esri; créditos del mapa: IDECA Bogotá, PNNC, Esri, TomTom, Garmin, METI/NASA, USGS y US Census Bureau.

Actualizado en septiembre de 2026: corregí el stack técnico, cómo se carga el KMZ en DJI Fly y lo que DJI Fly trae de fábrica. La fórmula sigue igual; le agregué qué unidades lleva cada término. Quité una infografía con una altura que no cuadraba con esa fórmula, y también los precios de otras apps, que no tenían fuente. Dejé de presentar la app como código abierto mientras el repositorio no tenga archivo de licencia.

DJI Mini 5 Pro con control remoto RC2

Era diciembre cuando llegó la caja de DJI a mi puerta.

Adentro: un Mini 5 Pro. Mi primer dron. No pude resistirme: un sensor de 1 pulgada y 50 megapíxeles en algo que cabe en el bolsillo. Era perfecto.

Bueno, casi perfecto.

El problema que no esperaba

Desde mis clases de fotogrametría en la universidad no dejo de pensar en cómo se ve el terreno desde arriba.

Así que cuando llegó el Mini 5 Pro, la idea fue inmediata: fotogrametría.

¿Es el Mini 5 Pro un dron de fotogrametría profesional? No.

¿Trae un modo para mapear un área? Tampoco.

¿Se puede hacer fotogrametría con él? Sí.

El sensor y la cámara daban la talla. Solo necesitaba una app que calculara las rutas de vuelo.

Abrí DJI Fly esperando encontrar algo como "Mission Planning" o "Survey Mode".

Nada.

Busqué en los menús. En configuración avanzada. En opciones ocultas.

Nada.

DJI Fly tiene vuelo por waypoints, pero ninguna función que calcule la cuadrícula de fotos de un levantamiento.

Las "soluciones" que encontré

Empecé a googlear. Seguro alguien había resuelto esto, ¿no? Esto es lo que encontré:

  • Pix4Dcapture: "Este modelo de drone no es compatible".
  • DJI Pilot 2: solo para drones enterprise.
  • DroneDeploy y otras apps: de pago, por suscripción.

Me quedé mirando la pantalla.

¿En serio tengo que pagar una suscripción mensual... para calcular a qué altura volar y cada cuántos metros tomar una foto?

Las fórmulas de fotogrametría no son secreto de estado. Están en cualquier libro de teledetección. Son matemáticas básicas que se enseñan en los primeros semestres de ingeniería:

Altura = (GSD × Focal × Ancho_Imagen) / (Ancho_Sensor × 100)

El GSD (ground sample distance) es cuántos centímetros de terreno cubre cada píxel, y en la fórmula va en cm/px. La focal y el ancho del sensor van en milímetros, y el ancho de la imagen, en píxeles. Ojo con la focal: va la focal real del lente, bastante más corta que los 24 mm equivalentes que publica DJI para el Mini 5 Pro. La altura sale en metros; el 100 pasa de centímetros a metros.

Para la altura, eso es todo. Una división.

La distancia entre fotos y entre líneas sale de la huella de cada foto en el terreno y del solape que pidas. También es aritmética.

El momento "¿y por qué no?"

¿Por qué no construir mi propia app? La quería para resolver mi problema, sin plan de venderla ni de competir con nadie.

Y si además le servía a alguien más, tocaba compartirla con la comunidad.

Así nació GeoFlight Planner.

Pruébalo ahora mismo

La premisa es simple

Le dices a la app qué GSD quieres, y ella calcula a qué altura volar, a qué velocidad y cada cuánto disparar. La altura la toma desde el punto de despegue, así que el cálculo supone que el terreno está a ese mismo nivel: en una ladera, el GSD y el solape que obtienes cambian.

El flujo de trabajo

Dibujas el área sobre el mapa, eliges el dron y fijas el GSD y los solapes frontal y lateral. Con eso, la app traza la ruta y te entrega el KMZ para cargarlo en DJI Fly.

Patrones de vuelo disponibles

Cada levantamiento pide una ruta distinta. GeoFlight Planner trae cuatro patrones:

  • Grid: líneas paralelas en zigzag, para ortomosaicos y agricultura.
  • Doble: dos pasadas perpendiculares, para modelos 3D.
  • Corredor (experimental): tres líneas paralelas en sentido norte-sur o este-oeste, según hacia dónde se extienda más el área. Si trazas una vía o un río en diagonal, las líneas no siguen su eje.
  • Órbita: una vuelta alrededor del centro del área. Por ahora la misión no apunta la cámara hacia ese centro.
Patrones de vuelo disponibles en GeoFlight Planner

El stack técnico

Para quien quiera ver cómo está hecha la app:

Todo el cálculo corre en tu navegador. Ni el polígono ni la misión salen de tu máquina, porque la app no tiene un servidor que los reciba. El mapa base y los recursos del SDK de ArcGIS, en cambio, se descargan de internet.

  • React 18 + TypeScript + Vite
  • ArcGIS Maps SDK for JavaScript
  • proj4 para las transformaciones WGS84 ↔ UTM
  • jszip para armar el KMZ
  • Un Web Worker que hace el cálculo sin congelar la interfaz

Qué exporta

Un KMZ con la estructura WPML (WayPoint Markup Language) de DJI. DJI Fly no tiene una opción para importar misiones, así que el KMZ entra reemplazando una que ya exista.

En Android, el método que documentan Litchi Utilities y WaypointMap es crear en Waypoint una misión de prueba y guardarla. Luego conectas al computador el control o el teléfono donde corre DJI Fly, entras a /Android/data/dji.go.v5/files/waypoint/, abres la carpeta más reciente y cambias el KMZ que hay adentro por el de GeoFlight, con el mismo nombre de archivo. El identificador del dron que lleva el archivo todavía es estimado. Si DJI Fly no abre la misión, cuéntamelo en los comentarios.

La app trae el tamaño de sensor, la distancia focal y la resolución de las cámaras de los dos drones que soporta hoy, el DJI Mini 4 Pro y el Mini 5 Pro. Con esos datos hace las cuentas del vuelo.

Por qué decidí compartirlo

Podría haberme quedado con esto para uso personal. Funcionaba y me servía. Fin de la historia.

Pero en GeoAI LATAM compartimos lo que construimos. La comunidad existe para que el conocimiento no quede detrás de un muro de pago.

GeoFlight Planner es gratis, no tiene versión "pro" y no pide registro. El código está publicado en GitHub para que cualquiera lo lea y lo audite.

Lo que me quedó

La cuenta de la altura era una división. La escribí yo, y ahora la app la hace para cualquiera que tenga un Mini 4 Pro o un Mini 5 Pro.

¿Qué herramienta te tocó construir porque ninguna de las que encontraste te servía?


¿Quieres probarlo?

La app, el código y la ficha están aquí:

👉 Usar GeoFlight Planner: geoai-latam-waypoints.inspow.tech

👉 Repositorio: github.com/geoai-latam/WaypointsDJI

👉 Ficha del proyecto: retos y lecciones de GeoFlight Planner

Lo que viene después del vuelo, cuando tienes un modelo 3D y no sabes cómo mostrarlo, lo conté en Y después del vuelo... ¿cómo muestro el modelo?.


Recursos:

Comentarios

Deja tu comentario

Los leo todos. Se revisan antes de publicarse, así que el tuyo puede tardar un rato en aparecer.

0 / 1500

o escríbeme directo Correo LinkedIn GitHub

Nevado del Ruiz, 5321 m (SGC) · sin escala vertical

Únete a la red.

Una carta, sin ruido

Experimentos, mapas, papers y proyectos que van aterrizando. Sin spam, sin algoritmos, sin tracking — solo el correo.

sin spam · sólo lo que publico · baja en un clic