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

Информация о товаре

Сеть и подключение

Данные

Кастомизация интерфейса

Составление маршрутов

Симулятор

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

Сервисы мобильности

Информация о товаре

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

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

Да. При создании или изменении маршрута RouteChangeListener предоставляет ломаные линии.

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

Сеть и подключение

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

После начала навигации и получения Navigation SDK сигнала GPS хотя бы один раз сообщение "Поиск GPS…" будет показываться в следующих ситуациях:

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

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

Есть ли офлайн-режим?
Нет, в Navigation SDK пока нет офлайн-режима. Однако SDK предоставляет предварительно кешированную информацию о поездке.

Данные

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

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

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

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

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

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

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

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

Вы можете приблизительно воспроизвести эту функцию с помощью remainingTimeOrdistanceChangeListener.

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

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

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

Да. Управляйте уведомлениями с помощью Navigator.setHeadsUpNotificationEnabled. У этого метода есть логический аргумент. FALSE – уведомления отключены; TRUE – уведомления включены.

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

Кастомизация интерфейса

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

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

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

Чтобы отключить карточки с расчетным временем прибытия, вызовите метод navigationView.setEtaCardEnabled(false).

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

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

Составление маршрутов

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

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

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

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

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

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

Поддерживает ли Navigation SDK прокладку маршрутов и навигацию для грузовиков и других крупных транспортных средств?

Да. При прокладке маршрутов для крупногабаритных транспортных средств вы можете передавать в Navigation SDK токены маршрутов для грузовиков, сгенерированные Routes API или Route Optimization API. SDK обеспечивает пошаговую навигацию с подсказками по маршруту (ограничения по высоте, весу, перевозке опасных грузов и грузовикам) и поддерживает физический профиль транспортного средства во время динамического изменения маршрута. Подробнее о навигации по маршрутам для крупногабаритного транспорта…

Симулятор

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

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

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

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

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

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

Сервисы мобильности

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

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

Продукты Mobility сейчас доступны только некоторым клиентам. За дополнительной информацией обратитесь к своему представителю отдела продаж Google.

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

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

Какие API Navigation SDK должны использовать только клиенты Mobility Services?

В 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 без Mobility Services, в том числе о переносе приложения с одного типа реализации на другой, обратитесь к специалисту Google по работе с аккаунтом.

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