remulasce / metroapp

Realtime arrival notification utility for LA Metro
2 stars 0 forks source link

Trips at identical locations oscillate priority #179

Closed remulasce closed 9 years ago

remulasce commented 9 years ago

If they're extremely close to each other, there may not be a consistent "closest" station, or if they are identical locations.

remulasce commented 9 years ago

Maybe add some priority based on order of addition?

remulasce commented 9 years ago

It's because proximity update times are not synced to location updates. So if you're moving closer to a stop, the most recently updated stop will always be closest, guaranteeing they fluctuate.

We should make it so that all proximities update at the same time. Preferably, right after we receive a location update.

remulasce commented 9 years ago

Labelling bug because design practically guarantees this.

remulasce commented 9 years ago

Proximity priority in general is a little screwed up actually.

remulasce commented 9 years ago

Let's get this out in dev_2 Dev_2 is basically 'nice release to line up with iOS port'

remulasce commented 9 years ago

Problem exacerbated by:

Note that the problem is the constant flip-flopping every couple seconds. Once a minute doesn't look bad, and remember these stops are supposed to change priority based on movement.

Outside impacts:

Possible solutions:

remulasce commented 9 years ago

For Immediate Implementation:

Synchronize proximity calculations

That gives us better control over GPS tuning as well, along with an avenue for better mock location testing.

Differentiating priority- like, first requests added get more priority- takes care of 2 birds, but it's more of a band-aid for this problem and requires tuning that's beyond the scope of this issue.

remulasce commented 9 years ago

Trip proximities are now synchronized. We get the current distance every update from the locationretriever Locationretriever has been given a cache, so it doesn't have to do those calculations every time.

When we get a new location, we update the whole cache with it at once, so everybody gets their proximity to the same location as long as they check every frame.