Часто задаваемые вопросы

Подробная информация о продукте

Сеть и связь

Данные

Настройка пользовательского интерфейса

Маршрутизация

Симулятор

Рабочие процессы

Мобильные услуги

Подробная информация о продукте

Ваше приложение должно реализовывать диалоговое окно с уведомлением об условиях использования Navigation SDK, которое должен принять каждый пользователь. Этот диалог позволяет пользователю согласиться с Условиями использования. Текстовый файл с условиями предоставляется вместе с Navigation SDK. Используйте метод NavigationApi.showTermsAndConditionsDialog для отображения диалогового окна с условиями.
Все языки, поддерживаемые Google Maps Mobile, автоматически доступны для Navigation SDK. Устройство имеет системный язык по умолчанию, и приложение не может его изменить. Однако приложение имеет доступ к более чем 70 языкам.

Да. После запуска LocationListener продолжает работать в фоновом режиме. Ваше приложение продолжает привязывать местоположение к дороге и сохранять азимут.

Да. При создании или изменении маршрута RouteChangeListener отображает полилинии.

Нет, Navigation SDK не требует установки Google Maps Mobile на устройство.
Нет, на данный момент Navigation SDK не предоставляет такую ​​функцию.
Да. Направление движения доступно и отображается по умолчанию.
Какие версии JDK поддерживает Navigation SDK?
Navigation SDK поддерживает LTS-версии Java SE, которые активно поддерживаются Oracle. Эти версии указаны как имеющие премьер-поддержку в Oracle Java SE Support Roadmap .

Сеть и связь

Как Navigation SDK справляется с плохим сетевым подключением?
Навигационный SDK предварительно кэширует маршрут для каждой поездки. Кэшированная информация включает в себя информацию о маршруте на 15–20 минут и альтернативные варианты на случай отклонения пользователя от маршрута. Навигационный SDK приблизительно определяет местоположение, используя GPS-данные устройства и датчики.
Как Navigation SDK справляется со слабыми или потерянными сигналами GPS?

После запуска навигации и получения навигационным SDK сигнала GPS хотя бы один раз на экране появится сообщение «Поиск GPS...» в следующих ситуациях:

  • Если с момента последнего получения сигнала GPS прошло более 10 секунд.
  • Если позиция маршрута сместилась более чем на 500 м с момента последнего получения сигнала GPS.

Если SDK не получает сигнал GPS в течение длительного времени, движение по маршруту, обозначенное в приложении положением шеврона, может замедлиться вплоть до полной остановки. В этом случае шеврон на карте останется в месте, указанном последним сигналом GPS. SDK не выйдет автоматически из режима навигации из-за отсутствия сигнала GPS. Однако он может не предоставлять навигацию до тех пор, пока не получит сигнал снова.

Доступен ли автономный режим?
Нет, на данный момент Navigation SDK не предлагает автономный режим; однако SDK предоставляет предварительно кэшированную информацию о поездке.

Данные

Могу ли я получить все остановки/пункты назначения в поездке перед началом маршрута?

Да. Чтобы получить инструкции по маршруту, вызовите Navigator.getRouteSegments() .

Доступна ли пошаговая инструкция по маршруту в начале маршрута?
Да. Навигационный SDK предоставляет список сегментов маршрута. Кроме того, пользователь может пролистать карточку маршрута в заголовке, чтобы увидеть каждый манёвр.
Каким образом пользователи приложения узнают о своем прибытии?

Чтобы предоставить пользователям приложения информацию о предполагаемом времени прибытия, выполните следующие действия:

  1. Получите время и расстояние для всех точек маршрута с помощью Navigator.getTimeAndDistanceList() .
  2. Перешлите эту информацию в клиентское приложение так же, как вы это делаете для расчетного времени прибытия водителя.
Можно ли использовать RoadSnappedLocationProvider для получения текущего зафиксированного местоположения пользователя, если навигация не находится на переднем плане?

Да. RoadSnappedLocationProvider по умолчанию работает в фоновом режиме.

Поддерживает ли Navigation SDK геозонирование?

Нет. В контексте навигации remainingTimeOrdistanceChangeListener имеет преимущество перед геозоной. Геозона может не учитывать геометрию дороги и не быть точно центрированной относительно точки, к которой движется пользователь.

Эту функцию можно аппроксимировать с помощью remainingTimeOrdistanceChangeListener .

  1. Установите пороговое значение для определения частоты обратных вызовов.
  2. Проверьте оставшееся расстояние до пункта назначения.

Например, если установить пороговое значение 100 м, вы получите обратный вызов, когда расстояние до пункта назначения увеличится на 100 м. По мере уменьшения расстояния вы можете уменьшить пороговое значение и получать обратные вызовы чаще. Затем проверьте оставшееся расстояние, чтобы определить, достаточно ли вы близки к месту посадки/высадки.

Можно ли отключить уведомления, когда приложение «Навигация» работает в фоновом режиме?

Да. Используйте Navigator.setHeadsUpNotificationEnabled для управления уведомлениями. Этот метод принимает логический аргумент. FALSE отключает уведомления; TRUE включает уведомления.

Регистратор транзакций отслеживает подачу и выдачу багажа с помощью уникального идентификатора, который Google регистрирует для аналитики продукта. Если вы являетесь абонентом сервисов Mobility Services , Google рекомендует вам внедрить NavigationTransactionRecorder для регистрации транзакций.

Настройка пользовательского интерфейса

Могу ли я выделить цветом наилучший вариант маршрута?
Нет. Цветовая кодировка определенного варианта маршрута в настоящее время не поддерживается.
Может ли Navigation SDK показывать расчетное время прибытия в конечный пункт назначения?

Да. Используйте следующие методы:

  1. Получите время и расстояние для всех точек маршрута с помощью Navigator.getTimeAndDistanceList() .
  2. Скройте расчетное время прибытия текущей точки маршрута с помощью NavigationFragment.setEtaCardEnabled(false) .
  3. Укажите расчетное время прибытия в конечный пункт назначения.
Как скрыть обновления расчетного времени прибытия?

Вы можете отключить карты ETA, вызвав navigationView.setEtaCardEnabled(false) .

Какие настройки пользовательского интерфейса доступны для карточек верхнего и нижнего колонтитула?

Используйте StylingOptions для настройки цвета фона. Чтобы скрыть или отобразить верхний и нижний колонтитулы, используйте функции setHeaderEnabled и setFooterEnabled класса NavigationFragment .

Маршрутизация

Могу ли я предоставить пользователю определенный маршрут или удалить альтернативные маршруты?
Нет. По умолчанию предлагается несколько маршрутов, и приоритет отдаётся самому быстрому. Вы можете изменить маршрут по умолчанию, добавив в запрос настройки, например, «избегать автомагистралей и платных дорог». Добавление промежуточных точек также влияет на маршрут.
Могу ли я показать пользователю приложения метку пункта назначения, отличную от метки пункта назначения по умолчанию?

Да. Создайте Marker с пользовательским названием пункта назначения и широтой/долготой. Navigation SDK отображает пользовательское название и координаты на NavigationMap .

Можно ли использовать Navigation SDK для отслеживания отклонений от заданного пути?

Да. Используйте Navigator.setRouteChangedListener для получения уведомлений об изменении маршрута или рекомендации нового маршрута:

  1. Зарегистрируйте прослушиватель, который проверяет положение устройства вдоль маршрута с помощью метода Navigator.setRouteChangedListener .
  2. Добавьте код в обработчик событий обратного вызова onRouteChanged :
    • Отправьте сообщение пользователю приложения с обновленной информацией о времени прибытия и расстоянии.
    • Отслеживайте местоположение устройства.
    • [необязательно] Добавьте другие функции, необходимые вашему приложению для обработки ситуаций, когда пользователь отклонился от заданного маршрута.
Может ли пользователь выйти из навигации, не завершив маршрут?

Да. Чтобы остановить навигацию, вызовите метод Navigator.stopGuidance() .

Симулятор

Поддерживает ли симулятор изменение маршрута?

Да. Вызовите метод simulateLocationsAlongNewRoute для моделирования поездки с изменением маршрута. Метод simulateLocationsAlongExistingRoute игнорирует изменения существующего маршрута.

Рабочие процессы

Как закрыть уведомление после закрытия действия, содержащего фрагмент навигации?

Уведомление о навигации остаётся видимым во время навигации, даже если действие закрыто. Когда автомобиль достигает пункта назначения, навигация останавливается, и уведомление исчезает.

Для обработки нажатий на уведомление используйте метод Navigator.startGuidance(intent resumeIntent) . resume intent срабатывает, когда пользователь приложения нажимает на уведомление. Обычно метод Navigator.startguidance(getIntent()) вызывается из основного Activity, который вызывает Activity, когда пользователь приложения нажимает на уведомление.

Мобильные услуги

Чем отличается использование Navigation SDK для клиентов Mobility Services?

Сервисы мобильности платформы Google Карт предлагают набор API и SDK для поддержки транспортных и логистических компаний. Клиенты сервисов мобильности обычно используют навигационный SDK в сочетании с другими сервисами для оптимизации маршрутов, диспетчеризации, отслеживания задач, аналитики автопарка и другими. Кроме того, для клиентов сервисов мобильности тарифицируется по-разному . Подробнее см. в документации по сервисам мобильности .

В настоящее время мобильные устройства доступны только избранным клиентам. Для получения дополнительной информации обратитесь к своему торговому представителю.

Как узнать, являюсь ли я клиентом Mobility Services?
Если вы не уверены, реализуете ли вы Navigation SDK как клиент Mobility Services, найдите вызов ReportBillableEvent в своём коде. Метод ReportBillableEvent следует вызывать только клиентам Mobility Services.

Как осуществляется оплата навигационного SDK для клиентов Mobility Services?
Для клиентов Mobility Services выставление счетов и цены на Navigation SDK зависят от условий вашего соглашения об обслуживании с Google Maps Platform. Информация о проверке корректности выставления счетов за вашу реализацию Mobility Services представлена ​​в разделе «Проверка выставления счетов» . Дополнительную информацию о выставлении счетов за Mobility Services можно получить у вашего торгового представителя.

Какие API-интерфейсы навигационного SDK должны использоваться только клиентами мобильных сервисов?

В Navigation SDK есть несколько API, предназначенных только для клиентов Mobility Services , которым Google выставляет счета за каждую транзакцию. Если вы не являетесь клиентом Mobility Services, следующие методы не являются обязательными:

Если я являюсь клиентом Mobility Services, могу ли я использовать реализацию Navigation SDK, не относящуюся к Mobility Services?

Да, клиенты Mobility Services могут использовать как реализации Navigation SDK, относящиеся к Mobility Services, так и не относящиеся к ним. Однако одновременно в приложении можно использовать только один тип реализации. Вам также необходимо создать новый проект Google Cloud, платёжную учётную запись и ключ API, отдельные от тех, которые вы используете для своей реализации Mobility Services. Подробнее см. в обзоре настройки Navigation SDK .

Для получения дополнительной информации об использовании реализации Navigation SDK, не связанной с мобильными службами, включая миграцию приложения из одного типа реализации в другой, обратитесь к своему представителю Google по работе с клиентами.

Примечание: Если вы в настоящее время не являетесь клиентом Mobility Services и хотите узнать больше о коллекции API и SDK Mobility Services, свяжитесь с отделом продаж платформы Google Карт .