Hello,
I'm using ArcGIS Maps Sdk version:
implementation 'com.esri.arcgisruntime:arcgis-android:100.15.6'
I' getting this below error while want to draw route path using multiple stop points in ArcGIS mapview
RouteTask Failed to Load Cause: com.esri.arcgisruntime.io.JsonEmbeddedException: Token Required
RouteTask Failed to Load Cause Msg: Token Required
Please find the below code to draw route between multiple points:
private fun drawRouteBetweenMultiplePointArcGIS(listOfStops: ArrayList<Stop>) {
Log.e(
TAG,
"######Inside drawRouteBetweenMultiplePointArcGIS########")
Log.e(
TAG,
"listOfStops Size: ${listOfStops.
size}")
// Load RouteTask before using it
routeTask.loadAsync()
routeTask.addDoneLoadingListener
{
Log.e(
TAG,
@Inside routeTask.addDoneLoadingListener")
Log.e(
TAG,
"routeTask.loadStatus ${routeTask.
loadStatus}")
Log.e(
TAG,
"RouteTask Failed to Load: ${routeTask.
loadError.
message}")
Log.e(
TAG,
"RouteTask Failed to Load Cause: ${routeTask.
loadError.
cause}")
Log.e(
TAG,
"RouteTask Failed to Load Cause Msg: ${routeTask.
loadError.
cause?.
message}")
if (
routeTask.
loadStatus == LoadStatus.
LOADED) {
Log.e(
TAG,
@Inside LoadStatus.LOADED")
// Create Route Parameters
val routeParamsFuture =
routeTask.createDefaultParametersAsync()
routeParamsFuture.addDoneListener
{
val routeParams = routeParamsFuture.get()
routeParams.
isReturnRoutes =
true
routeParams.
isReturnDirections =
true
routeParams.
isFindBestSequence =
true // Enables shortest path optimization
// Get available travel modes and set driving mode
val travelModes =
routeTask.
routeTaskInfo.
travelModes
val drivingMode = travelModes.
find { it.
name.
contains(
"Driving",
true)
}
if (drivingMode !=
null) {
routeParams.
travelMode = drivingMode
}
routeParams.setStops(listOfStops)
// Solve Route
val routeResultFuture =
routeTask.solveRouteAsync(routeParams)
routeResultFuture.addDoneListener
{
val routeResult = routeResultFuture.get()
if (routeResult.
routes.
isNotEmpty()) {
val route = routeResult.
routes[
0]
// Get the best route
drawPolylineArcGIS(route)
// Draw route on map
}
}
}
}
}
}
private fun drawPolylineArcGIS(route: Route) {
val routeGeometry = route.routeGeometry
// Create line symbol
val lineSymbol = SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.BLUE, 10f)
// Create polyline graphic
polylineGraphic = Graphic(routeGeometry, lineSymbol)
// Add route graphic to map
mGraphicsOverlay.graphics.add(polylineGraphic)
}
I'm using runtime API key to validate ArcGIS mapView:
private fun setArcMapAPIKey() {
ArcGISRuntimeEnvironment.setApiKey(Constant.ARCGIS_MAP_API_KEY)
}
Show currently, what steps need to be taken to solve this above issue?
kindly suggest.