Release v1.11.0
Turn Lanes in Valhalla Response
We have added lane information to GLRouteManeuver
:
/// Number of lanes
@property(readonly) NSUInteger lanesCount;
/// Returns possible turn directions for a specific lane.
/// @param index The index of the lane (starting from 0).
/// @return A mask indicating all valid turn directions for the lane.
- (GLRouteTurnLaneMask)turnDirectionsAtLine:(NSUInteger)index;
/// Returns valid turn directions for a lane that can be used to follow the route initially.
/// Valid turns indicate that the lane is suitable for the maneuver but may require further lane changes later.
/// @param index The index of the lane (starting from 0).
/// @return A mask indicating valid turns for the lane.
- (GLRouteTurnLaneMask)validTurnAtLine:(NSUInteger)index;
/// Returns active turn directions for a lane that should be used to follow the route without requiring additional lane changes.
/// Active turns indicate the optimal lane for continuing along the route as intended.
/// @param index The index of the lane (starting from 0).
/// @return A mask indicating active turns for the lane.
- (GLRouteTurnLaneMask)activeTurnAtLine:(NSUInteger)index;
Create GLRoute
from JSON
If you have received a Valhalla response in JSON format, you can use it to create a GLRoute
and then use GLRouteTracker
for navigation along that route.
Creating a GLRoute
from JSON is a logical extension of the method +[GLRouteRequest offlineAction:(NSString *)action request:(NSString *)request config:(NSString *)config startPoint:(GLMapGeoPoint)startPoint error:(NSError **)error]
, which accepts a request and returns the JSON response.
GLRouteTracker
Works with Alternative Maneuvers
A route in GLRoute
can include both the main route and alternative routes. To accurately determine when the user has passed a junction or switched to an alternative route, new methods have been added to GLRouteTracker
.
/// Checks if the user has passed the specified route.
/// @param routeIndex The index of the route.
/// @return YES if the user has passed the route, NO otherwise.
- (BOOL)didPassRoute:(NSInteger)routeIndex;
/// Current route index. Can be changed when the tracker detects that the user moves along another route.
@property(assign) uint8_t currentRoute;
Breaking changes
GLMapTapGestureBlock
gesture handler block shouldn't return BOOL
anymore. It's required only for GLMapPanGestureBlock
to handle pan gestures correctly. Sorry for troubles.