Произошла ошибка при выполнении doInBackground () при добавлении путевых точек в Mapbox в kotlin - PullRequest
0 голосов
/ 16 октября 2019

Я использовал 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()

...