如何检测我在一个航点附近

我想使用mapbox-android SDK在Android(Kotlin)上制作一个导航应用程序。 我需要创建一个具有特定航点的航线,并且想要知道我何时靠近其中一个航点(例如前200米)。 我已经设法使用NavigationRoute对象显示带有航点的地图,并使用NavigationLauncher对象启动逐向导航。 不过,我不知道如何知道我什么时候靠近航点。 我已经阅读了关于里程碑事件监听器(步骤或路由),RouteProgress(腿或路由)的事情,但是我不知道这是否是正确的方法。

我试图用STEP_DISTANCE_REMAINING_METERS声明一个里程碑,并添加一个MilestoneEventListener,但是在我的日志中没有任何东西激活。 就像我说的,我甚至不知道这是否是正确的方法。

val milestone = RouteMilestone.Builder() .setIdentifier(100) .setTrigger(Trigger.all( Trigger.lt(TriggerProperty.STEP_DISTANCE_REMAINING_METERS, 200) )) .build() navigation = MapboxNavigation(this@MainActivity, Mapbox.getAccessToken()) navigation.addMilestone(milestone) navigation.addMilestoneEventListener { _, _, milestone -> Log.d(TAG, "milestone triggered: " + milestone.instruction) } navigationMapRoute = NavigationMapRoute(navigation, mapView, map, R.style.NavigationMapRoute) navigationMapRoute!!.addRoute(currentRoute) 

我正在使用这些版本的mapbox SDK

  • mapbox-Android的SDK 5.3.2
  • mapboxfunction的Android导航:0.9.0
  • mapbox-Android的导航界面:0.9.0