Customising route appearance

There is a way to customise an appearance for both, main and alternate route polylines on the map by setting NMRouteDisplayParameters object to NMRouteVisualizerRequest.requestDisplayingPolylineAndWaypointsOfRoute and RouteVisualizerRequest.requestDisplayingPolylinesOfAlternativeRoutes methods.

The following settings can be changed:

  • Minimum route polyline width;

  • maximum route polyline width;

  • route color;

  • if a halo should be displayed around the route polyline (its color can also be specified);

  • if direction arrows should be shown on the main route;

  • if waypoint flags should be shown;

  • if traffic overlay should be shown on route polylines;

  • markers used to represent waypoints (start, finish and intermediate stops).

If NMRouteDisplayParameters object is null, the default settings will be used.

Here is an example of route customisation:

NMRouteDisplayParameters *routeDisplayParams = [NMRouteDisplayParameters new]; routeDisplayParams.minRouteWidth = [NSNumber numberWithFloat:10]; routeDisplayParams.maxRouteWidth = [NSNumber numberWithFloat:50]; routeDisplayParams.routeColor = [UIColor blueColor]; routeDisplayParams.showRouteHalo = [NSNumber numberWithBool:YES]; routeDisplayParams.routeHaloColor = [UIColor blackColor]; routeDisplayParams.startMarker = [[NMRouteMarker alloc] initWithAnchorPoint:CGPointMake(0.5,0.5) image:[UIImage imageNamed:@"yellow_flag"]]; routeDisplayParams.finishMarker = [[NMRouteMarker alloc] initWithAnchorPoint:CGPointMake(0.5,0.5) image:[UIImage imageNamed:@"yellow_flag"]]; NMRouteVisualizerRequest *request = [[NMRouteVisualizerRequest alloc] init]; [request requestDisplayingPolylineOfRoute:selectedRoute parameters:routeDisplayParams]; [request requestDisplayingPolylinesOfAlternativeRoutes:nonSelectedRoutes parameters:routeDisplayParameters]; [navmiiSDK.routeVisualizer performRequest:request];

The next capture depicts the route builded with selected parameters:

 

To use custom road markers an NMRouteMarker object should be specified.

NMRouteMarker *startMarker = [[NMRouteMarker alloc] initWithAnchorPoint:CGPointMake(0.5,0.5) image:[UIImage imageNamed:@"start_marker"]]; routeDisplayParams.startMarker = startMarker;

In case of null, the default marker will be used. Anchor point provides a marker’s location, (0.0, 0.0) is for the top left corner, (1.0, 1.0) is for the bottom right corner. 

start_marker, finish_market and yellow_flag icons only exist in the sample application only.