Я использовал MapBox
в своем приложении для Android Kotlin
. Все работает нормально, пока я не попытался добавить несколько путевых точек к маршруту, сгенерированному с помощью MapBox Navigation SDK
.
. Вот код, который я использую:
val finalWayPointsList = mutableListOf<Point>()
finalWayPointsList.add(waypoints[0])
finalWayPointsList.add(waypoints[1])
println("the wayPoint list is $finalWayPointsList")
val builder = NavigationRoute.builder(this)
.accessToken(getString(R.string.access_token))
.origin(origin)
.destination(destination)
for (wayPoint in finalWayPointsList) {
builder.addWaypoint(wayPoint)
}
println("ended loop")
builder.build()
.getRoute(object : retrofit2.Callback<DirectionsResponse> {
override fun onResponse(
call: retrofit2.Call<DirectionsResponse>,
response: retrofit2.Response<DirectionsResponse>
) {
println("got response")
val body = response.body() //?: return
if (body?.routes()?.count() == 0) {
println("Main Activity Error : No route found")
return
}
if (navigationMapRoute != null) {
println("reached navigationMapRoute != null ")
navigationMapRoute?.removeRoute()
} else {
println("reached else ")
navigationMapRoute =
NavigationMapRoute(null, mapView!!, mapboxMap!!)
}
navigationMapRoute?.addRoute(body?.routes()?.first())
}
override fun onFailure(
call: retrofit2.Call<DirectionsResponse>,
t: Throwable
) {
}
})
mapboxMap!!.animateCamera(
CameraUpdateFactory.newCameraPosition(
CameraPosition.Builder()
.target(
LatLng(
fromLat, fromLong
)
)
.zoom(14.0)
.build()
), 2000
)
Не удалось добавить более одной путевой точки, несмотря на то, что она прекрасно работает, когда я добавляю только 1 путевую точку, используя этот блок кода:
val builder = NavigationRoute.builder(this)
.accessToken(getString(R.string.access_token))
.origin(origin)
.destination(destination)
.addWaypoint(Waypoints[0])
builder.build()
Но в конце я получаю ошибку:
An error occurred while executing doInBackground()