Здесь карты поворот за поворотом свободные делегаты после расчета нового маршрута - PullRequest
0 голосов
/ 17 апреля 2020

Мы разрабатываем приложение, которое показывает маршрут и показывает его нашим водителям. Есть несколько точек, которые водитель должен пройти оттуда. Мы рассчитываем маршрут от места водителя до следующей точки. Когда водитель достигает точки, мы рассчитываем новый маршрут и присваиваем ему 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, затем рассчитываю маршрут и начинаю пошаговую навигацию с вышеуказанной функцией. Но я упомянул рано с этим новым маршрутом навигационные методы делегата не вызваны.

Также я использовал функцию [[NMANavigationManager sharedNavigationManager] setRoute:newRoute]; для установки нового рассчитанного маршрута менеджера навигации, но это тоже не работает.

Я прочитал все подробности в документе здесь руководство карты

Я не уверен, что мой подход неверен или отсутствует. Может быть, вы можете помочь мне с лучшим алгоритмом расчета нескольких маршрутов и навигации по нему во время навигации по диспетчеру маршрутизации.

...