如何在 Mapbox SDK 上检查用户是否已到达目的地?

问题描述

MapBox NavigationViewController 是否有任何在用户到达目的地时触发的委托方法?因为我发现当目的地真正接近 iPhone/用户位置时,NavigationViewController 的地图视图将整个地图。但是当我点击 NavigationViewController 的顶部横幅以显示路线步骤然后再次点击以关闭地图时显示为 MGLMapCamera 设置。我尝试使用用户方法 navigationViewController(_ navigationViewController: NavigationViewController,didArriveAt waypoint: Waypoint) -> Bool 来检查 iPhone/用户是否到达目的地,它会显示 showEndOfRouteFeedback 但它没有用。这种情况只发生在用户位置非常接近目的地,其他情况下正常工作。

image #1 shows that user has arrived the destination with full entire map.

image #2 tap on NavViewController's top bar.

image #3 After dismiss NavViewController's top bar.

用户点击标注时,这是我的代码

func mapView(_ mapView: MGLMapView,tapOnCalloutFor annotation: MGLAnnotation) {
    guard let route = route,let routeOptions = routeOptions else { return }
    let navVC = NavigationViewController(for: route,routeIndex: 0,routeOptions: routeOptions)
    let camera = MGLMapCamera(lookingAtCenter: userCurrentLocation,altitude: 0,pitch: 0,heading: 0)
    navVC.modalPresentationStyle = .fullScreen
    navVC.automaticallyAdjustsstyleForTimeOfDay = true
    navVC.pendingCamera = camera
    navVC.routeLineTracksTraversal = true
    self.present(navVC,animated: true,completion: nil) 
}

解决方法

就我而言,我只是更新项目中的所有 cocoapod 并再次运行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...