spstreets / gtfs_manager

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

Displaying stops #10

Closed maxwell8888 closed 2 years ago

maxwell8888 commented 2 years ago

In the same way that selecting a route on the map will scroll to that route in the list, users should be able to click on a stop on the map which will make visible a corresponding stop widget in the list.

Chosen approach

Only show 1 stop at a time, the selected stop. Being able to scroll through a long list of stops doesn't seem to add much value like a long list routes does. Though it would be easy to allow users to select multiple stops (Ctrl + click) if they wanted to build a longer list for comparison, though this doesn't seem very important and means more UI space would need to be reserved for a list of stops rather than singluar. Will definitely want to support users being able to select exactly two stops for specifying journeys, though this still doesn't mean we need to display both stops simulatanesouly and will probably use a different UI for this type of journey planning. Selecting a different stop for a stop_time: The most user friendly way would be to just click on the map, which is easy to implement. But will eventually probably want a way to do this purely in the list, rather than needing to use the map? In which case this is TBD.

Which route?

When clicking on a stop used by multiple routes, there is no clear associated route or stop_time to display, unless maybe a route has already been selected so the user is specifically selecting a stop for that route.

Long list of stops?

Having a long list of stops is one option, and clicking on that stop could scroll to the corresponding widget. However, the number of stops can be very large and even if we hide most of the widget behind expanders as described in #8 there is still likely to be performance problems. It also makes more sense to initially show the stop_time from which the stop can be naviagted to, since the inverse is not really possible - nope it is not always clear what route clicking on a stop relates to. There doesn't seem to be any other sensible way to group/subset stops other than by route, or maybe alphbetically by first letter of name?

There doesn't seem to be much need for having all stops in one list, and makes more sense to only display individual stops The only exception is selecting a new stop for a stop time. It seems like it would be nicer to be able to add a stop at the route or shape level, and then trips/stop_times select from the routes/shapes subset of stops when updating stops, but the gtfs data structure doesn't really support this which would likely make it hard and convoluted to implement.

Displaying corresponding routes for a particular stop

Is it possible to clearly display all the corresponding routes/trips/stop_times for a particular stop? Possibly not in the list, only on the map? But even on the map it will not be clear since different routes for the same stop will of course overlap and not be easily differentiable - but only for that section of the route? Maybe displaying a list of all route names that use that stop in the stop widget would be best?

Will need to make it clear that changes to a stop will affect other routes also referencing that stop. Maybe want editing functionality that will automatically create a new copy of the original stop, allowing a stop to be easily updated only for a specific route.

Robinlovelace commented 2 years ago

No comment from me other than to say: thanks for thinking of this and overall sounds good to me!

maxwell8888 commented 2 years ago

This issue was mostly for jotting down thinking. I've now broken it into a number of smaller self contained issues.