es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema con obtener las líneas de autobús correctas de GTFS usando php, csv y mysql.

Necesito obtener datos de transporte para mi aplicación móvil. Especialmente me gustaría obtener una lista de paradas con las líneas de autobús que se detienen en cada parada.

Descargué los datos de este enlace http://gtfs.ztp.krakow.pl/

  • Datos de autobuses: GTFSKRKA.zip
  • Datos de tranvías: GTFSTKRKT.zip

Usando un código PHP simple, lo descomprimí, leí los valores en .csv de los archivos .txt, agregué otra columna con valores id varchar cambiados a id int utilizando la función explode, luego guardé esos archivos como .csv nuevamente para cargarlos en una transacción utilizando MySQL (esto me ayuda a introducir relaciones utilizando índices).

Según lo que sé, la única forma posible de obtenerlo es conectar 4 tablas como paradas con tiempos de parada, después tiempos de parada con viajes y finalmente viajes con rutas para obtener la relación parada de autobús <--> ruta.

Mi consulta SQL es:

SELECT DISTINCT r.route_short_name 
FROM google_transit_routes r 
JOIN google_transit_trips t ON t.route_id_int = r.route_id_int 
JOIN google_transit_stop_times st ON t.trip_id_int = st.trip_id_int 
JOIN google_transit_stops s ON s.stop_id_int = st.stop_id_int 
WHERE s.stop_name LIKE "Bieńczycka" 
ORDER BY r.route_short_name ASC 

Que devuelve:

  • 103
  • 125
  • 127
  • 129
  • 664

Cuando verifico esta parada de autobús en línea (que creo que es correcta), muestra otras líneas que circulan por esta parada de autobús:

https://www.mapakrakow.pl/?ir=2&przystanek=Bie%C5%84czycka&lang=pl

103 y 644 están bien, pero 125, 127 y 129 no deberían estar en el resultado de mi consulta.

Las líneas 1, 5, 9, 14, 52 y 64 son para tranvías que aún no he cargado, por lo que es bueno que la consulta no las haya devuelto.

¿Tienen alguna idea de cómo resolver este problema?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema reside en los propios datos, ya que la parada de autobús en línea muestra resultados diferentes a la consulta utilizando los datos GTFS descargados. Una posible solución es verificar los datos en los archivos GTFS y compararlos con la información en línea de las paradas de autobús para ver si hay discrepancias o datos faltantes. También es posible que algunas líneas de autobús se hayan agregado o eliminado desde que se actualizó por última vez los datos GTFS.

    Otra opción podría ser buscar otras fuentes de datos de transporte que puedan proporcionar información más precisa o actualizada, como APIs o feeds de datos en tiempo real. Además, puede ser útil consultar con otros expertos en TI o desarrolladores en la industria del transporte para ver si han encontrado problemas similares y cómo los han resuelto.

Comments are closed.