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