spstreets / gtfs_manager

A GUI for viewing and editing GTFS data
MIT License
30 stars 3 forks source link

Reddit post #58

Closed maxwell8888 closed 2 years ago

maxwell8888 commented 2 years ago

Title: Druid app for public transport data

Body: GTFS Manager is an app for GTFS data which is an open file format for public transport. It's currently a very rough prototype but will hopefully be developed into a fully featured app in the future.

It's built with Druid. I have experience with web development and have made an app with Iced. I'm not sure how I should be managing the large datasets (typical GTFS datasets have 10s or 100s of thousands of each object (Routes, Trips, Stops, Path Taken, etc) that all relate to each other (GTFS is basically just a SQL schema and the data is a zip file of CSVs). Maybe I should put all the data in the app's state and filter it with Druid, or maybe continuously update the app's to only contain the data that is currently displayed in the app, possibly with the data stored in SQLite.

Coming from web where it's not easy to understand what happens behind the scenes, I found it empowering how simple and transparent Druid is. I particularly like that the trait provided for building custom widgets is the same one used by the built in widgets, meaning you can easily extend or adapt the built in widgets, or just learn from them. Overall I really like Druid and plan to use for future projects.

The map uses a combination of immediate mode drawing and caching bitmaps to achieve panning and zooming for large numbers of paths and circles (routes and stops). This approach works fine and was easy to implement but has limitations. I'm hoping that Druids planned transition to using https://github.com/linebender/piet-gpu for drawing will help with making a performant map. https://github.com/maplibre/maplibre-rs is very inspiring and could provide a base for a future version of the app.

If you are intested in contributing or have any questions about the project, please get in touch.

dabreegster commented 2 years ago

Two suggestions:

Robinlovelace commented 2 years ago

https://www.reddit.com/r/rust/comments/wy4col/druid_app_for_public_transport_data/