SO 关于 HERE Maps 的文档和资源很少Mobile-SDK
,所以我希望有人可以帮助我们。
我们在应用程序 ( iOS
SDK
Swift4
XCode9
) 中开发了转弯导航。一切正常,声音下载正确,路线计算正确,定位正确启动,然后我们调用该方法:
private func calculateRoute() {
print("Calculating route")
// Routing mode
let routingMode = NMARoutingMode.init(routingType: NMARoutingType.fastest, transportMode: NMATransportMode.car, routingOptions: NMARoutingOption.avoidBoatFerry)
routeManager.calculateRoute(withStops: [initialCoordinate, destinationCoordinate], routingMode: routingMode) {
(routeResult: NMARouteResult?, error: NMARoutingError?) in
if error == nil || error == NMARoutingError.none {
let mapRoute = routeResult?.routes?.first
self.route = NMAMapRoute.init(mapRoute!)
self.gpsMapView.add(mapObject: self.route!)
self.startNavigation(mapRoute: self.route!)
} else {
os_log("Route calculation completed with errors", log: OSLog.default, type: .debug)
print(error.debugDescription)
}
}
}
private func startNavigation(mapRoute: NMAMapRoute) {
// Start the turn-by-turn navigation
navigationManager.startTurnByTurnNavigation(mapRoute.route)
}
一旦调用了里面的 start turn by turn 导航方法navigationManager
,最终会调用这个回调:
func navigationManager(_ navigationManager: NMANavigationManager, didUpdateManeuvers currentManeuver: NMAManeuver?, _ nextManeuver: NMAManeuver?) {
nextRoadName.text = nextManeuver?.roadName as String?
displayManeuverImage(icon: currentManeuver?.icon)
}
执行此回调后,导航将完美运行。
我们的问题是调用之间花费的时间:
navigationManager.startTurnByTurnNavigation(mapRoute.route)
并且回调是随机长的。有时是 1 秒(几乎没有),很多时候长达 2 分钟,这对于生产应用程序来说是不可接受的。
在这段等待时间内,我们的代码都没有被执行,所以它一定是 HERE 内部的东西Maps-SDK
,或者是我不知道的一些内部问题。
有人知道这里发生了什么吗?
提前致谢!