Я реализовал пользовательскую Навигационную активность, следуя примеру в документации 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