Page Summary
-
This guide explains how to set a vehicle's destination in your driver app after a trip is matched using Fleet Engine and the Driver SDK.
-
You need to retrieve the destination waypoints from Fleet Engine's
GetTrip(),UpdateTrip(), orGetVehicle()methods. -
Use the Navigation SDK's
setDestination()method, ensuring the coordinates match the trip's waypoint for proper consumer app rendering. -
Code samples in Java and Kotlin demonstrate how to implement destination setting and initiate turn-by-turn navigation in the driver app.
This section documents how to set the vehicle's destination after your server matches a trip to a vehicle.
Before you begin
This section requires you to have completed the following:
Set the destination in the driver app
After you have paired a consumer with a driver, you must configure the trip's destination in the driver app by performing the following steps:
-
Retrieve the vehicle's destination from its waypoints collection in Fleet Engine, which is returned by
GetTrip(),UpdateTrip()andGetVehicle(). -
Set the destination by calling the Navigation SDK for Android method
setDestination().
The following examples show how to set the destination in the driver app.
Java
private
void
navigateToLocation
(
LatLng
locationLatLng
,
RoutingOptions
routingOptions
)
{
Waypoint
destination
=
Waypoint
.
newBuilder
().
setLocation
(
locationLatLng
).
build
();
// Create a future to await the result of the asynchronous navigator task.
ListenableResultFuture<Navigator
.
RouteStatus
>
pendingRoute
=
mNavigator
.
setDestination
(
destination
,
travelMode
);
// Define the action to perform when the SDK has determined the route.
pendingRoute
.
setOnResultListener
(
new
ListenableResultFuture
.
OnResultListener<Navigator
.
RouteStatus
> ()
{
@Override
public
void
onResult
(
Navigator
.
RouteStatus
code
)
{
switch
(
code
)
{
case
OK
:
// Hide the toolbar to maximize the navigation UI.
if
(
getActionBar
()
!=
null
)
{
getActionBar
().
hide
();
}
// Enable voice audio guidance (through the device speaker).
mNavigator
.
setAudioGuidance
(
Navigator
.
AudioGuidance
.
VOICE_ALERTS_AND_GUIDANCE
);
// Simulate vehicle progress along the route for demo/debug builds.
if
(
BuildConfig
.
DEBUG
)
{
mNavigator
.
getSimulator
().
simulateLocationsAlongExistingRoute
(
new
SimulationOptions
().
speedMultiplier
(
5
));
}
// Start turn-by-turn guidance along the current route.
mNavigator
.
startGuidance
();
break
;
// Handle error conditions returned by the navigator.
case
NO_ROUTE_FOUND
:
displayMessage
(
"Error starting navigation: No route found."
);
break
;
case
NETWORK_ERROR
:
displayMessage
(
"Error starting navigation: Network error."
);
break
;
case
ROUTE_CANCELED
:
displayMessage
(
"Error starting navigation: Route canceled."
);
break
;
default
:
displayMessage
(
"Error starting navigation: "
+
String
.
valueOf
(
code
));
}
}
});
}
Kotlin
private
fun
navigateToLocation
(
locationLatLng
:
LatLng
,
travelMode
:
RoutingOptions
)
{
val
destination
=
Waypoint
.
newBuilder
().
setLocation
(
locationLatLng
).
build
()
// Create a future to await the result of the asynchronous navigator task.
val
pendingRoute
=
mNavigator
.
setDestination
(
destination
,
travelMode
)
// Define the action to perform when the SDK has determined the route.
pendingRoute
.
setOnResultListener
(
object
:
ListenableResultFuture
.
OnResultListener<Navigator
.
RouteStatus
> ()
{
override
fun
onResult
(
code
:
Navigator
.
RouteStatus
)
{
when
(
code
)
{
Navigator
.
RouteStatus
.
OK
-
>
{
// Hide the toolbar to maximize the navigation UI.
getActionBar
()
?.
hide
()
// Enable voice audio guidance (through the device speaker).
mNavigator
.
setAudioGuidance
(
Navigator
.
AudioGuidance
.
VOICE_ALERTS_AND_GUIDANCE
)
// Simulate vehicle progress along the route for demo/debug builds.
if
(
BuildConfig
.
DEBUG
)
{
mNavigator
.
getSimulator
()
.
simulateLocationsAlongExistingRoute
(
SimulationOptions
().
speedMultiplier
(
5
))
}
// Start turn-by-turn guidance along the current route.
mNavigator
.
startGuidance
()
}
Navigator
.
RouteStatus
.
NO_ROUTE_FOUND
-
>
{
displayMessage
(
"Error starting navigation: No route found."
)
}
Navigator
.
RouteStatus
.
NETWORK_ERROR
-
>
{
displayMessage
(
"Error starting navigation: Network error."
)
}
Navigator
.
RouteStatus
.
ROUTE_CANCELED
-
>
{
displayMessage
(
"Error starting navigation: Route canceled."
)
}
else
-
>
{
displayMessage
(
"Error starting navigation:
${
code
.
name
}
"
)
}
}
}
}
)
}

