-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle GTFS feeds with pathway nodes #804
Conversation
In the interest of getting this fix into the next maintenance release, we will not implement full pathway routing in this PR. In its current form the PR should now at least tolerate non-stop nodes in stops.txt and fully validate whether they must or must not have coordinates based on their types. In order to perform this validation, which requires checking internal references between rows in stops.txt and therefore cannot be applied on the fly as rows are loaded, this PR introduces post-load validation checks that run after all tables are loaded. Using this mechanism, this PR also includes a simple fix for #777: the calendar and calendar_dates tables are both treated as non-required, but a post-load rule adds a general error on the whole feed if no service entries were generated by loading the feed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a couple minor renaming suggestions. Otherwise, this looks good to me.
This PR contains first steps to address issue #803. The most visible immediate effect is that it avoids spatial index errors from feeds with stops that lack coordinates when generating GTFS vector tiles. The underlying change is gracefully tolerating GTFS feeds that use the pathway extensions, even where we don't yet use those nodes in routing.
The code is already in working condition, but we may want to add more validation or build a full routable model from the pathways in transfers.txt. That could be done in this PR or a subsequent one.