这里地图会在计算新路线后依次导航松散的代表

问题描述 投票:0回答:1

我们正在开发一个显示路线并将其导航到我们的驾驶员的应用。驾驶员应该从那里经过几个航路点。我们计算从驾驶员位置到下一个点的路线。当驾驶员到达该点时,我们将计算一条新路线并将其分配给NMANavigationManager并更新地图上的NMAMapRoute对象。对于第一个路线,一切正常,我们看到所有操作都可以使用navigationManagerDidReroute委托方法重新进行。

问题开始于计算新路线并设置为NMANavigationManager。地图路线会使用正确的路线更新自身,但我们失去了导航语音和重新路由功能。在计算并设置新路由后,没有委托方法调用。

我已经尝试了一些解决方案。这是我的startNavigation函数。我在计算路线后调用此函数。

func startNavigation() {
    self.mapView?.mapScheme = NMAMapSchemeCarNavigationDay
    guard let route = self.route else {
        print("Route is nil")
        return
    }
    self.startButton.isHidden = true
    self.maneuverView.isHidden = false
    if let turkishPackage = NMAVoiceCatalog.sharedInstance()?.voicePackage(withId: 218) {
        NMANavigationManager.sharedInstance().voicePackage = turkishPackage
    }
    NMANavigationManager.sharedInstance().mapTrackingEnabled = isFollowing
    NMANavigationManager.sharedInstance().isVoiceEnabled = true
    NMANavigationManager.sharedInstance().mapTrackingOrientation = .dynamic
    NMANavigationManager.sharedInstance().isSpeedWarningEnabled = true
    NMANavigationManager.sharedInstance().mapTrackingAutoZoomEnabled = true
    NMANavigationManager.sharedInstance().delegate = self
    NMANavigationManager.sharedInstance().startTurnByTurnNavigation(route)
}

并且在调用navigationManagerDidReachDestination之后我停止了路线,然后使用上述功能计算路线并通过转弯导航开始转弯。但是我很早就提到了没有调用此新路线的navigationManager委托方法。

[我也使用[[NMANavigationManager sharedNavigationManager] setRoute:newRoute];功能来设置导航管理器的新计算路线,但这也不起作用。

我阅读了here maps guide文件的所有详细信息

我不确定我的方法是错误还是遗漏。可能是您可以帮助我了解导航管理器路由时计算多条路线和导航的最佳算法。

here-api here-ios
1个回答
0
投票

请从我们的Github示例中逐步获取导航实现的参考。如果无法使用,也要报告:https://github.com/heremaps/here-ios-sdk-examples

© www.soinside.com 2019 - 2024. All rights reserved.