Este proyecto de código abierto aplica el algoritmo de Dijkstra para determinar rutas óptimas en grafos y generar mapas geoespaciales. Permite visualizar redes de caminos, ríos, vuelos y vías férreas a partir de datos geográficos.
Figura 1: Ejemplo de red hidrográfica generada con dijkstra-cartography, mostrando distribución de cuencas fluviales.
Instalación del sistema
1. Obtener el código fuente
git clone https://gitcode.com/gh_mirrors/di/dijkstra-cartography
2. Configurar dependencias
Requisitos generales: Compilador C++, CMake.
Para mapas urbanos de París (requiere Node.js):
npm install sync-request node-osm-stream lodash proj4js
Para mapas ferroviarios: Se necesita Docker para ejecutar el backend OSRM.
Creación de un mapa de calles urbanas
Usando el ejemplo de París, sigue estos pasos:
1. Procesamiento de datos geoespaciales
cd dijkstra-cartography/paris/read
node read.js
2. Compilación del módulo de renderizado
cd ../draw
cmake .
make
3. Generación del mapa
./main
Figura 2: Mapa de red vial de París mostrando la topología de interconexiones.
Tipos de mapas disponibles
Rutas aéreas globales
cd dijkstra-cartography/flights
cmake .
make
./main
Figura 3: Red de conexiones aéreas entre principales aeropuertos internacionales.
Red ferroviaria
Primero iniciar el servicio OSRM via Docker:
cd dijkstra-cartography/railway/misc
docker run -d -p 5000:5000 owner/name
Luego procesar datos y generar el mapa:
cd ../read
cmake .
make
./main
cd ../draw
cmake .
make
./main
Figura 4: Infraesturctura ferroviaria visualizada mediante análisis de caminos óptimos.
Personalización del sistema
- Fuentes de datos: Se pueden incorporar datasets geográficos propios respetando el formato requerido
- Parámetros algorítmicos: Ajustar configuraciones del algoritmo de Dijkstra en el código fuente
- Estilos visuales: Modificar propiedades de renderizado como grosor de líneas y paleta cromática
Solución de problemas frecuentes
- Errores de compilación: Verificar instalación compleat de dependencias y herramientas de build
- Procesamiento prolongado: Los datasets extensos requieren mayor tiempo de computación
- Límites de memoria: Optimizar recursos del sistema al trabajar con mapas de gran escala