Skip to main content

Routing plugin

Contents

The routing plugin allows you to generate safe and legal routes for commercial vehicles and display those routes on the map. To use the plugin:

In the dependencies of the project’s gradle file, add the code below to get access to the features in the plugin.

implementation 'com.trimblemaps.mapsdk:maps-android-plugin-route:0.9.23'

When initializing the RoutePlugin, you can customize the stop icons and the text color used to draw routes. The code below depicts how you can do this:

SettingDescription
mapViewThe MapView to apply the route plugin to.
trimbleMapsMapThe TrimbleMapsMap to apply route plugin with.
belowLayerThe layer id where you’d like the route to display below.
stopStartIconDrawableCustom Drawable to use for the first stop (origin).
stopEndIconDrawableCustom Drawable to use for the last stop (destination).
stopIconDrawableCustom Drawable to use for the intermediate stops.
stopIconTextColorCustom color to use for the stop numbers on the intermediate stop icons.

routePlugin = new RoutePlugin(mapView , mapboxMap , belowLayer ,
	stopStartIconDrawable,
	stopEndIconDrawable,
	bitmapDrawableFromVectorResource(R.drawable.ic_stop_blue),
	Color.parseColor("#FFFFFF"))

Once we have a valid route, we can pass that route into the RoutePlugin and it will draw the route on the map.

mRoutePlugin.addRoute(mRoute)

If you want to clear the route via the RoutePlugin, you just use clearRoutes()

mRoutePlugin.clearRoutes()

You can also frame the route passed with the frameRoutes() method. You have the option to set custom padding to the frame if you wish to zoom out or zoom in to the route drawn.

routePlugin.frameRoutes(mPaddingLeft, mPaddingTop, mPaddingRight, mPaddingBottom)

How to generate a route

In order to use the route plugin, you must first create a route to pass in. To generate a route, you need to define and initiate the RouteOptions. If there are only two stops in a trip, then the coordinates origin and destination should be defined and the intermediate stops can be null. If a trip has more than one stop, then you need to define the origin and destination, and put all the other stops in listOfMiddlePoints.

val builder = RouteOptions.builder()
builder.applyDefaultParams()
    .coordinates(originPoint, listOfMiddlePoints, destinationPoint)
    .language(Settings.language.get(MainApplication.sharedPreferences()))
.voiceUnits(Settings.distanceUnits.get(MainApplication.sharedPreferences()))
    .routeProfile(profile)
val routeOptions = builder.build()

Now we can pass the routeOptions to a Route object.

val builder = Route.builder()
builder.routeOptions(routeOptions)
	...
	...
val route = builder.build()

And the route can be added to the routePlugin:

routePlugin.addRoute(route)
Last updated November 29, 2022.
Contents