Устранение неполадок

Ошибки

В случае ошибки будет возвращено стандартное тело ответа с сообщением об ошибке, а код состояния HTTP будет установлен на статус ошибки.

В ответе содержится объект с единственным объектом error , имеющим следующие ключи:

  • code : Это то же самое, что и HTTP-статус ответа.
  • message : Краткое описание ошибки.
  • status : Код состояния, указывающий на характер ошибки.

Например, отправка недопустимого параметра placeId приведет к следующей ошибке:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

Возможные ошибки включают:

Код Статус Сообщение Поиск неисправностей
400 INVALID_ARGUMENT Предоставленный вами ключ недействителен. Ваш API-ключ недействителен или не был включен в запрос. Пожалуйста, убедитесь, что вы указали полный ключ и что API для этого ключа активирован.
400 INVALID_ARGUMENT Параметр "\"path\" содержит недопустимое значение: ☃" Ваш запрос содержал недопустимые аргументы. Наиболее вероятные причины этой ошибки:
  • Проблема с параметром path .
    Пожалуйста, убедитесь, что у вас не менее 1 и не более 100 баллов. Каждый балл должен представлять собой пару чисел, разделенных запятой, например: 48.409114,-123.369158 . Баллы должны быть разделены вертикальной чертой: '|'.
  • В вашем запросе содержался недопустимый placeId .
  • Ваш запрос содержал как placeId , так и path . Для каждого запроса можно указать только один из этих параметров.

Эта ошибка не будет возвращена, если placeId передан для дороги, которой больше не существует, или для места, которое не является дорогой.

403 PERMISSION_DENIED Незарегистрированный запрос был заблокирован. Пожалуйста, зарегистрируйтесь через консоль разработчиков Google. В удовлетворении запроса было отказано по одной или нескольким из следующих причин:
  • Отсутствует или недействителен ключ API.
  • В вашем аккаунте не включена функция выставления счетов.
  • Установленный самостоятельно лимит использования превышен.
  • Предоставленный способ оплаты больше недействителен (например, срок действия кредитной карты истек).

Для использования продуктов платформы Google Maps необходимо включить оплату в вашем аккаунте, а все запросы должны содержать действительный ключ API. Чтобы это исправить, выполните следующие шаги:

404 NOT_FOUND Для работы этого сервиса требуется протокол HTTPS. Убедитесь, что вы отправляете запросы на https ://roads.googleapis.com/ , а не http ://roads.googleapis.com/ .
429 RESOURCE_EXHAUSTED Запрос был отклонен из-за достижения лимита запросов по проекту. Вы превысили лимит запросов, установленный в консоли Google Cloud Platform. Обычно этот лимит устанавливается как количество запросов в день, запросов за 100 секунд и запросов за 100 секунд на пользователя. Этот лимит следует настраивать таким образом, чтобы предотвратить исчерпание ежедневной квоты одним пользователем или небольшой группой пользователей, при этом обеспечивая разумный доступ для всех пользователей. См. раздел «Ограничение использования API» для настройки этих лимитов.

Экспоненциальная задержка

При сбоях запросов следует обеспечить повторную попытку с экспоненциальной задержкой. Например, если запрос не удался один раз, повторите попытку через секунду, если он не удался снова, повторите через две секунды, затем через четыре секунды и так далее. Это гарантирует, что сбои или массовые ошибки не приведут к перегрузке серверов Google, поскольку множество клиентов будут пытаться повторно отправлять запросы очень быстро.

Часто задаваемые вопросы по устранению неполадок

Проблемы внедрения

С какой частотой мне следует измерять местоположение моего транспортного средства?
Для получения высококачественных результатов при привязке к дороге рекомендуется делать это каждые 1-10 секунд.
Существует ли ограничение на количество точек, которые я могу отправить в одном запросе?
Да, запрос может содержать не более 100 точек.
Какую точность следует использовать для хранения полученных пар координат широты и долготы?
Чтобы гарантировать, что привязанные пути будут следовать дорогам на всех уровнях масштабирования, даже на максимальном, следует сохранять привязанные пары широта/долгота с точностью до 7 знаков после запятой.
Можно ли использовать закодированные полилинии для отображения привязанных контуров?
Закодированные полилинии задаются с точностью до 5 знаков после запятой, что приводит к погрешности примерно в 2 метра. Поэтому закодированные полилинии не подходят, если вы хотите, чтобы ваши привязанные пути следовали за дорогой при высоком уровне масштабирования.

Общие проблемы

Некоторые точки не привязываются, или в привязанных контурах есть разрывы. Как это можно исправить?
  • Если вы отбираете точки через определенные промежутки времени, убедитесь, что интервалы отбора короче (каждые 1-10 секунд). При использовании более длительного интервала (например, 60 секунд) алгоритм привязки к дороге может не справляться с определением пройденных дорог с достаточной точностью.
  • Если вы вручную щелкаете по карте для создания точек, очень легко создать пути с небольшим количеством точек или с разреженным расположением точек, с которыми алгоритм привязки работает плохо. Алгоритм привязки лучше всего работает для точек, расположенных близко друг к другу. Попробуйте демо-версию «Привязка к дорогам» или используйте инспектор дорог , чтобы проверить свои пути.
    Почему при увеличении масштаба мои прикреплённые пути получаются неровными или слегка отклоняются от дороги?
    • Вы уменьшаете точность привязанных пар широта/долгота перед их отображением? Хранение привязанных пар широта/долгота с точностью менее 7 знаков после запятой приводит к ошибкам точности при отображении привязанного пути на карте.
    • Вы используете закодированные полилинии? Закодированные полилинии обрезают пары широта/долгота до 5 знаков после запятой, что вносит погрешность в несколько метров, в результате чего линии получаются ломаными или слегка отклоняющимися от дороги при высоком уровне масштабирования.

    Если ни одно из вышеперечисленных условий не выполняется, возможно, недавно были обновлены фрагменты карты, из-за чего они рассинхронизировались с индексом дорог, используемым для привязки. Если это затронуло лишь несколько ваших запросов, вероятно, причина именно в этом. Поскольку Google Maps регулярно обновляется, это может происходить время от времени, и чаще, если вы регулярно просматриваете старые маршруты на карте (например, маршруты, которые были привязаны несколько недель назад). Для оптимальной визуализации следует повторно привязывать старые маршруты непосредственно перед отображением на карте, чтобы минимизировать несоответствия между фрагментами карты и индексом дорог, используемым для привязки.

    Что может привести к некорректному отображению ограничения скорости на дороге X?
    Информация об ограничениях скорости поступает из нескольких источников, которые различаются по точности и охвату. Если вы обнаружите закономерность, например, постоянное несоответствие ограничений скорости для определенного типа дорог или в определенном районе, пожалуйста, сообщите нам об этом, выполнив следующие действия:
    1. Откройте Google Maps на своем настольном компьютере ИЛИ приложение Google Maps для Android.
    2. Откройте меню в левой части экрана.
    3. Выберите «Отправить отзыв» . Примечание: возможно, вам потребуется войти в систему.
    4. Выберите «Редактировать карту» .
    5. Выберите участок дороги, который хотите отредактировать.
    6. Выберите «Далее» .
    7. В поле «Другое» укажите, что ограничение скорости на данной дороге указано неверно.
    8. Нажмите « Отправить» .
    Здесь вы также можете сообщать о других проблемах (например, если дорога имеет неправильное название, неправильно обозначена, закрыта или находится в частной собственности).
    Почему мой проторенный путь срезает углы вместо того, чтобы следовать по дороге?
    Для устранения этой проблемы проверьте следующее:
    • Убедитесь, что параметр interpolate установлен в true .
    • Убедитесь, что исходные точки данных отбираются с достаточно малыми интервалами (каждые 1-10 секунд).
    Почему в прикрепленном маршруте для дороги, где не меняется ограничение скорости, возвращается множество участков дороги?
    Если параметр interpolate установлен в true , запрос привязки к дороге возвращает полилинию, которая следует за дорогой на поворотах, изгибах и круговых перекрестках. Если дорога имеет изгибы, возвращается несколько сегментов дороги, даже если ограничение скорости не меняется, чтобы создать полилинию, которая точно следует геометрии дороги.