Este proyecto es una aplicación web que utiliza ArcGIS y una API de transporte público para mostrar las rutas de transporte público en un mapa interactivo. Los usuarios pueden ingresar una dirección de inicio y destino, ver las rutas posibles y visualizar el itinerario en el mapa, incluyendo las paradas de buses y el modo de transporte.
La aplicación permite al usuario:
- Ingresar una dirección de origen y destino.
- Buscar rutas de transporte público utilizando un servicio de geocodificación.
- Ver opciones de rutas y su respectivo itinerario.
- Mostrar las paradas de buses en el mapa.
- Ver los iconos de origen y destino en el mapa.
- Búsqueda de direcciones: Los usuarios pueden ingresar cualquier dirección y la aplicación mostrará posibles resultados, con la opción de seleccionar el destino deseado.
- Opciones de ruta: Después de obtener las ubicaciones de inicio y destino, la aplicación muestra diferentes opciones de ruta de transporte público.
- Dibujo de rutas en el mapa: Se dibujan las rutas en el mapa con diferentes colores y estilos según el modo de transporte (caminar, bus, etc.).
- Iconos personalizados: Los iconos para el origen y destino se muestran en el mapa, además de los íconos de las paradas de buses.
Para ejecutar este proyecto, necesitas tener lo siguiente:
- Un servidor web (puede ser local o remoto).
- Acceso a la API de ArcGIS para renderizar el mapa y obtener geolocalización.
- Una fuente de datos de rutas de transporte público que se pueda consultar mediante GraphQL (la estructura de la API debe ser adecuada para este propósito).
- Archivos de iconos para el origen y destino (
origin-icon.png
ydestination-icon.png
).
Este repositorio proporciona los pasos para instalar, configurar y utilizar OpenTripPlanner (OTP), un sistema de planificación de viajes multimodal de código abierto. OTP soporta diversos modos de transporte como público, bicicleta, caminata y combinaciones de estos.
- Introducción
- Instalación de OpenTripPlanner
- Configuración de Datos
- Construcción del Gráfico de Tránsito
- Inicio y Uso del Servidor OTP
- Optimización y Manejo Avanzado
- Guardado y Carga de Gráficos
- Desarrollos Avanzados
- Resolución de Problemas
- Limitaciones y Consideraciones
OpenTripPlanner (OTP) es un sistema de planificación de viajes multimodal de código abierto que permite a los usuarios planificar rutas combinando diferentes modos de transporte, incluyendo transporte público, bicicleta y caminata.
Versión actual: OTP 2.6.0
Requisitos de Java: Java 21 o posterior.
- Mínimo: 1GB de RAM.
- Recomendado: 2GB o más para conjuntos de datos grandes.
- Java JDK 21 o posterior
Descargar Java 21
Para verificar la instalación de Java, ejecuta el siguiente comando en la terminal:
java -version
Si no se muestra la versión correctamente, reinicia el equipo.
-
Descarga del archivo JAR de OTP
Descarga desde Maven Central:
OTP 2.6.0 -
Compilación desde código fuente (opcional)
Si prefieres compilar desde el código fuente, clona el repositorio y sigue las instrucciones de compilación.git clone https://github.com/opentripplanner/OpenTripPlanner.git cd OpenTripPlanner mvn clean package
OTP requiere dos tipos de datos:
- GTFS: Horarios y paradas del transporte público.
- OSM: Mapa detallado de redes viales.
- Fuentes recomendadas:
Para instalar osmconvert, consulta la guía de instalación.
# Crear directorio para datos
mkdir /home/username/otp-data/routers/default
# Descargar y descomprimir GTFS
Invoke-WebRequest "https://baliabideak.bizkaia.eus/Bizkaibus/GTFS/Bizkaibus.zip" -O bizkaibus.gtfs.zip
# Descargar y procesar OSM
Invoke-WebRequest "https://download.geofabrik.de/europe/spain/pais-vasco-latest.osm.pbf"
osmconvert pais-vasco-latest.osm.pbf -b=43.29504,-2.989254,43.26236,-2.934894 --complete-ways -o=pais-vasco.pbf
mv pais-vasco.pbf C:\otp-data
outers\default
-
Construir el gráfico completo (transporte y red vial):
java -Xmx2G -jar otp-2.6.0-shaded.jar --build /ruta/a/datos --serve
-
Construir solo la red vial:
java -Xmx2G -jar otp-2.6.0-shaded.jar --buildStreet .
-
Cargar y servir el gráfico:
java -Xmx2G -jar otp-2.6.0-shaded.jar --load --serve --port 8080 .
-
Iniciar el servidor OTP:
java -Xmx2G -jar otp-2.6.0-shaded.jar --serve --port 8080
-
Visualización: Accede a la interfaz web a través de http://localhost:8080.
-
Interacción con la API: Usa la interfaz JavaScript para interactuar con la instancia local.
-
Usa el parámetro
-Xmx
para ajustar la cantidad de memoria que Java puede usar. Ejemplo para 4GB:java -Xmx4G -jar otp-2.6.0-shaded.jar --serve
-
Herramientas de monitoreo:
- VisualVM para análisis de memoria.
- VisualGC plugin para ver la recolección de basura de Java.
- Divide el proceso de construcción de gráficos y ejecución del servidor en dos fases.
- Utiliza máquinas de alto rendimiento o instancias en la nube.
-
Guardar el gráfico para reutilización:
java -Xmx2G -jar otp-2.6.0-shaded.jar --build --save /ruta/a/otp/
-
Cargar gráficos guardados:
java -Xmx2G -jar otp-2.6.0-shaded.jar --load /ruta/a/otp/
-
Clona el repositorio y compila OTP desde el código fuente.
git clone https://github.com/opentripplanner/OpenTripPlanner.git cd OpenTripPlanner mvn clean package
-
Personalización: Puedes modificar los algoritmos de enrutamiento y agregar nuevos modos de transporte.
OTP ofrece una API REST para integrarse con otros sistemas. Ejemplo de solicitud:
GET /otp/routers/default/plan?fromPlace=45.5,-122.6&toPlace=45.5,-122.7&time=1:02pm&date=11-14-2023&mode=TRANSIT,WALK
-
Descarga la nueva versión de OTP y reemplaza el archivo
otp-shaded.jar
. -
Actualiza las dependencias si estás trabajando desde el código fuente:
mvn clean install
Coloca los archivos GTFS en su respectivo directorio y ajusta la configuración en router-config.json
.
Puedes cambiar el puerto de OTP con el siguiente comando:
java -Xmx2G -jar otp-shaded.jar --serve --port 8081
- Cobertura geográfica: OTP puede no tener cobertura completa en algunas áreas.
- Precisión de los datos: La calidad de las rutas depende de los datos de GTFS y OSM.
- Preferencias del usuario: Algunas preferencias específicas pueden no ser consideradas.
Clonar el repositorio:
git clone https://github.com/tu-usuario/nombre-del-repositorio.git
cd nombre-del-repositorio