На 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)
}
Как только вызывается начальный метод пошаговой навигации внутри 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 минут, что неприемлемо для производственного приложения.
Ни один из наших кодов не выполняется в течение этого времени ожидания, поэтому это должно быть что-то внутреннее для ЗДЕСЬ Maps-SDK
или какие-то внутренние проблемы, о которых я не знаю.
Кто-нибудь знает, что здесь происходит?
Заранее спасибо!