Пользовательский интерфейс навигации
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
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. | - Настройте автосервис.
- Настройте свой проект Navigation SDK.
- Установите навигатор, если вы еще этого не сделали.
- Настройте прослушиватель для пошаговых инструкций.
- Нарисуйте карту на поверхности приложения Auto и заполните поля из настроенного вами потока данных.
Для получения дополнительной информации см. раздел «Включить навигацию для Carplay». |
Водителям, использующим ваше приложение, нужна обзорная карта для большей части их путешествия, с минимальными пошаговыми инструкциями по городским улицам. | Ваше приложение должно позволять водителям входить и выходить из навигации Google по мере необходимости, не изменяя настройки навигатора для пункта назначения и режима поездки. |
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-29 UTC.
[null,null,["Последнее обновление: 2025-08-29 UTC."],[[["\u003cp\u003eThe Navigation SDK offers a custom navigation experience for greater flexibility beyond the standard Google navigation experience.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation involves managing UI elements and visuals, starting navigation sessions, listening for events, and ending navigation.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences are suitable for scenarios like text-only guidance, Carplay integration, or combining overview maps with minimal turn-by-turn guidance.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can access the turn-by-turn data feed and detailed navigation events to create highly customized navigation interfaces.\u003c/p\u003e\n"]]],[],null,["# Custom navigation experience\n\nThe Navigation SDK provides different ways to integrate a navigation\nexperience into your app. This page explains what a custom navigation experience\nis and how it differs from other navigation experiences that are available in\nthe Navigation SDK.\n\nWhat is a custom navigation experience?\n---------------------------------------\n\nThe primary way to implement the Navigation SDK is to use the [Google\nnavigation\nexperience](/maps/documentation/navigation/ios-sdk/intro-google-nav),\nwhich lets you embed a turn-by-turn navigation experience that uses\nGoogle-provided UI elements and visuals --- similar to the navigation experience\nwithin the Google Maps apps. If you need more flexibility than the Google\nnavigation experience offers, you can implement a custom navigation experience.\nA custom navigation experience refers to anything from eliminating turn guidance\nentirely with and running navigation only as a background process, to projecting\na highly customized guidance experience to a screen separate from the device\nthat runs the navigation. With a custom navigation experience, your app calls\nthe Navigation SDK to request a turn-by-turn navigation feed, and then\nyou provide and manage the UI elements and visuals that the user sees in the\nnavigation experience. While using the Google navigation experience is generally\neasier to implement, building your own custom navigation experience allows for\nmore customization.\n\nWhen you create a custom navigation experience, your app calls the Navigation\nSDK to start, run, and stop navigation, using the following flow:\n\n1. **Start navigation** . As with the Google navigation experience, a custom\n navigation experience still involves creating a navigation instance and\n setting the destination. However, with a customized navigation experience,\n you achieve this by first establishing a navigation session using\n `GMSNavigationService.createNavigationSession`, which is a state-bearing\n non-UI object that can operate either with a view controller, or without\n one.\n\n \u003cbr /\u003e\n\n For more information, see [Details about the turn-by-turn data\n feed](/maps/documentation/navigation/ios-sdk/nav-only-feed).\n\n **See the demo:** The download of the Navigation SDK contains a demo\n you can run to see an example of a navigation experience that switches\n between turn-by-turn guidance through standard navigation to a navigation\n experience that shows only the device location moving along a road\n polyline.\n2. **Active navigation** . Here is another key difference between a\n Google-provided navigation experience and a custom navigation experience.\n Instead of handing off guidance to the built-in event manager of the\n Navigation SDK, you set up a listener for detailed turn-by-turn guidance by implementing the `GMSNavigatorListener` protocol, and then implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/ios-sdk/events).\n\n3. **End navigation**. As with the Google navigation experience, custom\n navigation also requires you to terminate navigation in the manner best\n suited for the app's experience.\n\nWhen might you use a custom navigation experience?\n--------------------------------------------------\n\nThe following table describes some custom navigation scenarios.\n\n| **Example scenario** | **High-level steps** |\n|----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| You need to provide text-only driver guidance for small devices such as 2-wheeled vehicles. | Create your navigator and set up the turn-by-turn guidance as a data feed to a small screen device while the navigator runs on the driver's mobile phone outside of their immediate view. |\n| You want to make your app available as a car service for drivers who use Apple Carplay. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Set up a listener for turn-by-turn guidance. 5. Draw the map on the auto app surface and populate the fields from the data feed you configured. For more information, see [Enable Navigation for Carplay](/maps/documentation/navigation/ios-sdk/carplay) |\n| Drivers using your app want an overview map for most of their journey, with only minimal turn-by-turn guidance for city streets. | Your app should allow drivers to enter and exit the Google navigation experience as they need, without alternating the navigator's settings for destination and trip mode. |"]]