如何检测我在航点附近

时间:2018-02-06 22:24:19

标签: android kotlin mapbox mapbox-android turn-by-turn

我想使用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
  • mapbox-机器人导航:0.9.0
  • mapbox-机器人导航的用户界面:0.9.0

0 个答案:

没有答案