Javascript Mapbox NavigationViewOptions和NavigationLauncherOptions
我是Mapbox的新手,我已经有几天的时间试图弄清楚如何将progressChangeListener添加到我的NavigationLauncherOptions中 getInstance(这个,getString(R.string.access_令牌)); setContentView(R.layout.activity_main)Javascript Mapbox NavigationViewOptions和NavigationLauncherOptions,javascript,java,android,mapbox,mapbox-android,Javascript,Java,Android,Mapbox,Mapbox Android,我是Mapbox的新手,我已经有几天的时间试图弄清楚如何将progressChangeListener添加到我的NavigationLauncherOptions中 getInstance(这个,getString(R.string.access_令牌)); setContentView(R.layout.activity_main) Point originPoint=Point.fromLngLat(-80.311641,25.910195); 点目标点=从LNGLAT开始的点(-80.31
Point originPoint=Point.fromLngLat(-80.311641,25.910195);
点目标点=从LNGLAT开始的点(-80.312159,25.911922);
NavigationRoute.builder(MainActivity.this)
.accessToken(Mapbox.getAccessToken())
.原点(原点)
.目的地(目的地点)
.build()
.getRoute(新回调(){
@凌驾
公共void onResponse(调用、响应){
currentRoute=response.body().routes().get(0);
NavigationLauncherOptions=NavigationLauncherOptions.builder()
.方向路线(当前路线)
.shouldSimulatorOute(真)
.build();
NavigationLauncher.startNavigation(MainActivity.this,选项);
NavigationViewOptions.Builder选项Navigate=NavigationViewOptions.Builder();
选项Navigate.progressChangeListener(新的progressChangeListener(){
@凌驾
public void onProgressChange(位置,RouteProgress RouteProgress){
Log.v(“RES”,String.valueOf(routeProgress.currentState());
if(routeProgress.currentState().equals(RouteProgressState.ROUTE_到达)){
//执行到达逻辑
}
}
});
}
@凌驾
失败时公共无效(调用、可丢弃){
}
});
我尝试附加的代码,但它不工作。
非常感谢您的帮助。
感谢您如Mapbox的导航UI SDK路线进度文档所述:
此侦听器仅在将NavigationView
添加到时可用
您的活动
或片段
通过导航视图选项
布局XML。你
无法将它们添加到NavigationLauncherOptions
因此,如果需要访问进度侦听器,我建议通过
NavigationViewOptions
而不是navigationlauncheoptions
添加NavigationView
,并遵循Mapbox中的详细指导。示例应用程序还提供了一些有用的示例。请详细说明哪些不起作用?它可以正常工作,但当我添加NavigationViewOptions.Builder选项Navigate=NavigationViewOptions.Builder()时;要捕获进度更改,它什么都不做。我需要捕获并记录进度更改,以便在到达时执行其他操作。谢谢我正在使用NavigationLauncherOptions进行导航,但我不知道如何添加NavigationViewOptions来执行进度更改Listener非常感谢,你的评论真的很有用。很高兴听到这是有用的!
Point originPoint = Point.fromLngLat(-80.311641,25.910195);
Point destinationPoint = Point.fromLngLat(-80.312159, 25.911922);
NavigationRoute.builder(MainActivity.this)
.accessToken(Mapbox.getAccessToken())
.origin(originPoint)
.destination(destinationPoint)
.build()
.getRoute(new Callback<DirectionsResponse>() {
@Override
public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) {
currentRoute = response.body().routes().get(0);
NavigationLauncherOptions options = NavigationLauncherOptions.builder()
.directionsRoute(currentRoute)
.shouldSimulateRoute(true)
.build();
NavigationLauncher.startNavigation(MainActivity.this, options);
NavigationViewOptions.Builder optionsNavigate = NavigationViewOptions.builder();
optionsNavigate.progressChangeListener(new ProgressChangeListener() {
@Override
public void onProgressChange(Location location, RouteProgress routeProgress) {
Log.v("RES", String.valueOf(routeProgress.currentState()));
if (routeProgress.currentState().equals(RouteProgressState.ROUTE_ARRIVED)) {
// Execute arrival logic
}
}
});
}
@Override
public void onFailure(Call<DirectionsResponse> call, Throwable throwable) {
}
});