SDK для навигации предоставляет различные способы интеграции навигации в ваше приложение. На этой странице объясняется, что такое пользовательская навигация и чем она отличается от других вариантов навигации, доступных в SDK для навигации.
Что такое настраиваемая навигация?
Основной способ реализации Navigation SDK — использование интерфейса навигации Google , который позволяет встраивать пошаговую навигацию с использованием предоставленных Google элементов пользовательского интерфейса и визуальных эффектов — аналогично навигации в приложениях Google Maps. Если вам требуется большая гибкость, чем предлагает интерфейс навигации Google, вы можете реализовать собственный интерфейс навигации. Пользовательский интерфейс навигации может включать в себя всё, от полного исключения пошаговых указаний и запуска навигации только в фоновом режиме до отображения настраиваемого интерфейса навигации на отдельном экране, отличном от устройства, на котором запущена навигация. При использовании пользовательского интерфейса навигации ваше приложение вызывает Navigation SDK для запроса пошаговой навигации, а затем вы предоставляете и управляете элементами пользовательского интерфейса и визуальными эффектами, которые пользователь видит в навигации. Хотя использование интерфейса навигации Google, как правило, проще в реализации, создание собственного пользовательского интерфейса навигации позволяет обеспечить большую гибкость.
При создании пользовательской навигации ваше приложение вызывает SDK навигации для запуска, выполнения и остановки навигации, используя следующий алгоритм:
Начать навигацию . Как и в случае с навигацией Google, создание пользовательской навигации по-прежнему предполагает создание экземпляра навигации и указание пункта назначения. Однако в случае с настраиваемой навигацией это достигается путем предварительного установления сессии навигации с помощью
GMSNavigationService.createNavigationSession, которая представляет собой объект, не являющийся пользовательским интерфейсом и передающий состояние, который может работать как с контроллером представления, так и без него.Для получения более подробной информации см. раздел «Подробности о пошаговой передаче данных» .
Посмотрите демонстрацию: В загруженном SDK для навигации содержится демонстрационная версия, которую вы можете запустить, чтобы увидеть пример навигации, переключающейся между пошаговыми инструкциями в стандартном режиме и навигацией, отображающей только местоположение устройства, перемещающееся вдоль дорожной полилинии.
Активная навигация . Вот еще одно ключевое отличие между навигацией, предоставляемой Google, и навигацией, созданной пользователем. Вместо того чтобы передавать подсказки встроенному менеджеру событий Navigation SDK, вы настраиваете слушатель для подробных пошаговых инструкций, реализуя протокол
GMSNavigatorListener, а затем реализуете обработчики событий. Это позволяет вашей навигации реагировать на события, описанные в разделе «Слушание событий навигации» .Завершение навигации . Как и в случае с навигацией Google, для пользовательской навигации также требуется завершить навигацию способом, наиболее подходящим для работы приложения.
В каких случаях может потребоваться настраиваемая навигация?
В таблице ниже описаны некоторые сценарии пользовательской навигации.
Пример сценария | Этапы высокого уровня |
|---|---|
Необходимо обеспечить текстовые подсказки для водителя для небольших устройств, таких как двухколесные транспортные средства. | Создайте навигатор и настройте пошаговые инструкции, передавая данные на небольшой экран, в то время как навигатор будет работать на мобильном телефоне водителя вне поля его зрения. |
Вы хотите сделать свое приложение доступным в качестве сервиса для водителей, использующих Apple CarPlay. |
Для получения дополнительной информации см. раздел «Включение навигации для Carplay». |
Водители, использующие ваше приложение, хотят видеть общую карту на большей части своего маршрута, с минимальными пошаговыми инструкциями по городским улицам. | Ваше приложение должно позволять водителям входить и выходить из навигационной системы Google по мере необходимости, без изменения настроек навигатора для пункта назначения и режима поездки. |