Как начать пошаговую навигацию при использовании настроенного NavigationFragment / NavigationActivity? - PullRequest
0 голосов
/ 13 ноября 2018

Я реализовал пользовательскую Навигационную активность, следуя примеру в документации MapBox , и пока могу отображать пользовательский интерфейс навигации как карту, но не могу запустить навигацию самостоятельно или показать местоположение пользователя. Та же проблема существует при реализации его через NavigationFragment. Как я могу передать недостающую информацию, когда я вызываю свой NavigationActivity / NavigationFragment из моей MainActivity и правильно запускаю пошаговую навигацию?

Большое спасибо за любую помощь!

Я создаю directionsRoute и вызываю navigationView.startNavigation (параметры) с NavigationViewOptions.builder (), например:

override private fun onNavigationReady() {
...
calculateRoute(origin, destination)
} 

private fun calculateRoute(origin: Point , destination: Point) {
       NavigationRoute.builder(this.context)
               .accessToken(Mapbox.getAccessToken()!!)
               .origin(origin)
               .destination(destination)
               .build()
               .getRoute( object : Callback<DirectionsResponse> {
                   // Send request to Direction API
                   override fun onFailure(call: Call<DirectionsResponse>? , t: Throwable?) {
                   }
                   override fun onResponse(call: Call<DirectionsResponse>? ,
                                           response: Response<DirectionsResponse>?) {
                       if (response?.body() == null || response.body()?.routes()?.size!! < 1) {
                           return
                       }
                       directionsRoute = response.body()!!.routes()[0]
                       startNavigation()
                   }
               })
   }

private fun startNavigation() {
       if (directionsRoute == null) return
       val options = NavigationViewOptions.builder()
               .directionsRoute(directionsRoute)
               .shouldSimulateRoute(true)
               .navigationListener(this)
               .build()

       navigationView.startNavigation(options)
   }

Карта в NavigationFragment

...