soundscape-community / soundscape-web-client

Intelligent navigation on any platform
MIT License
2 stars 2 forks source link

Intersections #5

Open steinbro opened 5 months ago

steinbro commented 5 months ago

The original Soundscape app announced upcoming intersections, reading out the streets that meet.

This will require knowing what road the user is currently on (see #4).

Getting the street names will require the ability to look up cached features by OSM ID, since each intersection feature is just a list of IDs..

steinbro commented 5 months ago

I added a basic implementation of this, but it could use many refinements:

  1. Roads should be announced spatially in clockwise order.
  2. Only intersections that the user is approaching directly should be called out.
  3. Some more complex intersections result in repetitive callouts with subsets of the intersecting roads.

The complete logic for this in iOS Soundscape is nontrivial, but is helpfully documented: https://github.com/soundscape-community/soundscape/blob/943ff8a91181f6e8bbd8f74cb338888b9f29f3cf/docs/ios-client/components/intersections-callout-logic.md