-
Notifications
You must be signed in to change notification settings - Fork 313
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 intersection signals along current route. #4185
Conversation
01c8afe
to
b16f29b
Compare
if style.image(withId: ImageIdentifier.trafficSignalDay) == nil, | ||
let trafficSignlaDay = Bundle.mapboxNavigation.image(named: "TrafficSignalDay") { | ||
try style.addImage(trafficSignlaDay, id: ImageIdentifier.trafficSignalDay) | ||
} |
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.
It would be awesome if the current Style
subclass could define these images right alongside Style.mapStyle
.
let layerPosition = layerPosition(for: layerIdentifier) | ||
try style.addPersistentLayer(shapeLayer, layerPosition: layerPosition) |
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.
Looks like the intersection annotation layer is on top of the maneuver arrow layer. That makes logical sense and maintains the illusion of these traffic lights and signs standing upright. However, the maneuver arrow is an important element to be obscuring with an icon.
Will the maneuver arrow be prominent enough to overcome this overlap? Or should be consider a visual mitigation, such as offsetting the traffic light at a maneuver point?
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 think we could solve this issue by having a smaller icon or a longer maneuver arrow, from a UX design perspective. Because it's easy to understand by having the traffic signal icons place above the route line, which means that the user will drive through them.
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.
Yes, Google Maps takes a similar approach of elongating the maneuver arrow. That would also make the arrow more intuitive at large intersections: #3589. Apple Maps no longer displays maneuver arrows at all. Both applications display the traffic control device icon and highlight the intersection callout. #2928 would be a major usability improvement, making the maneuver arrow redundant, but maybe we could ticket out a simpler tweak to the maneuver arrow in the meantime.
8c8550d
to
eb941e2
Compare
Breaking Changes in MapboxCoreNavigationBreaking API Changes
|
1 similar comment
Breaking Changes in MapboxCoreNavigationBreaking API Changes
|
9aed2c3
to
e94914b
Compare
e94914b
to
e3aa974
Compare
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.
This is looking great! There’s some potential follow-up work detailed below, but from an API standpoint the feature is good to go.
let layerPosition = layerPosition(for: layerIdentifier) | ||
try style.addPersistentLayer(shapeLayer, layerPosition: layerPosition) |
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.
Yes, Google Maps takes a similar approach of elongating the maneuver arrow. That would also make the arrow more intuitive at large intersections: #3589. Apple Maps no longer displays maneuver arrows at all. Both applications display the traffic control device icon and highlight the intersection callout. #2928 would be a major usability improvement, making the maneuver arrow redundant, but maybe we could ticket out a simpler tweak to the maneuver arrow in the meantime.
...gation/Resources/Assets.xcassets/RoadIntersections/TrafficSignalNight.imageset/Contents.json
Show resolved
Hide resolved
e3aa974
to
0dfa87b
Compare
Description
This Pr is to fix #3843 by annotating intersection signals along the current route.
Implementation
NavigationViewController.annotatesIntersectionsAlongRoute
andCarPlayNavigationViewController.annotatesIntersectionsAlongRoute
to annotate intersections on the current route step during active navigation.NavigationViewController
andCarPlayNavigationViewController
, the signal icons from bundle resource will be added to the MapViewstyle
for intersection signals in current style type. And then update the signal layers.RouteProgress
updated or reroute event happened, intersections on the current step and the first intersection on the upcoming step will be annotated on map. When user passed an intersection, the intersection signals will be removed from the source feature and disappear.Screenshots or Gifs