-
Notifications
You must be signed in to change notification settings - Fork 289
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
Add geofencing, virtual station, and dockless support #219
Conversation
Some naming suggestions:
|
Hi @kanagy
However, I do not have strong opinions so I can make changes to the |
to fit the current spec: field names are now code text
Sounds ok. Thanks Tim! Do you plan to bring this to vote soon? |
One more thing: It is not clear from the spec how zones where operator has service should be modelled. Should feeds always contain zones where a provider can operate (e.g. whole city), as well as zones where there's restriction (e.g. can't park / speed limit)? Or only the latter? Let's say London has provider A, B, C. They all don't allow rides in Westminster and all operate in Zone 1. But they can model their feeds differently:
Which one of these providers is correct? It would be nice to make this clear in the spec and possibly give an example. |
This is a very good question! It’s true that there is a need for clarification. I think both operational zones (where providers can operate) and limitation zones (e.g. can’t park / speed limit) must be provided, to clearly specify where riders can use a vehicle, with or without limitations. The default behavior should be that when nothing is defined, no limitations apply; i.e zones should be defined according to restrictions rather than allowance. 2 reasons behind this idea: a dockless system could be operated without any operational boundaries or limitations (so there’d be no need to define geofencing zones); and currently in the spec, no allowance zones are necessary for authorizing dock-vehicle users to ride (and the spec should stay consistent). It means that operational boundaries should be provided with anti-clockwise exclusion zones, and limitation zones with clockwise inclusion zones. Following this thinking and your examples, Provider B is the only correct. Provider A does not provide the operational zone (London Zone 1). Provider C does provide the operational zone but as an allowance rather than a restriction: it means rides are explicitly allowed within London Zone 1, but are implicitly allowed outside of it as well (“no rules defined, no limitations apply”). On another note, Provider C provides 2 overlapping zones so, as suggested in the former PR #175, a mention should be brought that zones must not overlap. Also, If you agree on this, I will make the changes, resolve the conflicts, and call for a vote! |
I agree that if provider doesn't specify geofencing zones, everything is allowed everywhere by default. Beyond that I'm still not sure I understand your rule. Is the rule just - only ever specify restrictions in the feed (not allowances); limitation zones would be clockwise polygons with restrictions (disallowing riding inside the zone) and operational zones would be anticklockwise polygons with restrictions (disallowing riding outside of the polygon)? I think that works. I would lean towards operational zones not being mandatory. As you said - by default everything should be allowed. A dockless system might not have any operational boundaries, but still may have parking restrictions for some areas. About disjointness - I think zones can overap. Consider following example: a provider operates only in East London and West London. So the provider defines an anticlockwise polygon around East London and an anticlockwise polygon around West London. Because both are anticlockwise polygons, their outside areas overlap. |
Yes, it is. I clarified how to model geofencing zones in my last commit, based on our discussion.
I agree with your example. I do not have a strong opinion on that as long as if zones can overlap, there is a method for ordering polygons and their rules. So I will let the current definition of the field |
I think since now only restrictions are defined in the feed, in the event of overlapping, why not take the union of the overlapping zones? I.e. assume these zones overlap:
The consumer app would interpret this as:
What do you think? |
Another thing I noticed: should geofencing_zones object have a field "type" and value "FeatureCollection" for completeness with RFC7946? It seems that is required in https://tools.ietf.org/html/rfc7946#section-3.3 |
I'm ok with the use case you described. I updated the definition of
I also added conditions related to same-polygon rule conflicts (in case producers define rules with and without
And finally, you were right about the @kanagy please let me know if you have any other comments! Then I'll call for a vote. |
This looks good to me. Only not sure if you want to omit vehicle_capacity since that has a dependency on #136 |
Evan just called for a vote on #136 so I'd leave the references to the vehicle type proposal in this PR, hoping both will be adopted at the same time 🤞 |
I think the Geofencing, virtual station, and dockless-support proposal is ready for a vote! I hereby call a vote on this proposal. Voting will be open for 7 full calendar days, until 23:59:59 UTC on Tuesday, April 21st. Please vote for or against the proposal, and include the organization for which you are voting in your comment. Please also note if you can commit to implementing the proposal. |
Voting +1 on behalf of Google Maps. We're implementing this proposal with Lime. |
+1 from PBSC |
+1 from Bird. |
+1 from Transit |
+1 for IBI Group |
The vote on this is now closed, and it passes! Votes in favor: No votes against. We'll be merging, creating v2.1RC, and checking in with Google & Lime to double check implementation to try to move this to official ASAP. Thanks all! |
Context
MobilityData made a proposal to add geofencing zones, virtual stations and dockless support to the GBFS specification. The PR #175 was a first draft, and this Gdoc was kept up-to-date to reflect the evolution of the proposal, according to all the feedback received from the GBFS stakeholders.
As the GBFS specification format has changed a lot recently, the PR #175 has now plenty of conflicts so it was preferred to make this brand new PR. It means that this PR is replacing the PR #175 that will be closed.
Pull Request
A consensus seems to be reached on a modified version of the PR #175, version that the Gdoc reflects. Therefore, this PR adds to the GBFS specialition the propositions from the last version of this Gdoc. It includes only the minimum viable fields for GBFS to support geofencing zones, virtual stations and dockless systems. Some GBFS stakeholders have already committed to produce/consume data from this PR.
This proposal extends GBFS (General Bikesharing Feed Spec) to add support for:
The specific changes are:
Don’t hesitate to provide us with your feedback on this PR!