Идентификаторы мест

Выберите платформу: Android iOS JavaScript Веб-сервисы
Разработчики из Европейской экономической зоны (ЕЭЗ)

Введение

Идентификатор места однозначно идентифицирует его в базе данных Google Places и на Google Картах. Его можно использовать в следующих запросах к API Google Карт:

  • Получение адреса по идентификатору места в Geocoding API и сервисе Geocoding (Maps JavaScript API).
  • Указание пунктов отправления, назначения и промежуточных путевых точек в веб-сервисах Routes API и Directions API (устаревшая версия) и сервисе Directions (Maps JavaScript API, устаревшая версия).
  • Указание пунктов отправления и назначения в веб-сервисах Routes API и Distance Matrix API (устаревшая версия) и сервисе Distance Matrix (Maps JavaScript API, устаревшая версия).
  • Получение информации о месте в новом Places API, новом Places SDK для Android, новом Places SDK для iOS и библиотеке Places.
  • Использование параметров идентификатора места в Maps Embed API.
  • Извлечение поисковых запросов из URL Карт.
  • Показ ограничений скорости в Roads API.
  • Поиск и настройка стиля многоугольников, обозначающих административные границы, с помощью стилей на основе данных.

Как найти идентификатор места

Если вам нужно узнать идентификатор интересующего вас места, воспользуйтесь приведенной ниже строкой поиска.

Вы также можете ознакомиться со средством поиска идентификаторов мест и его программным кодом в документации по Maps JavaScript API.

Обзор

Идентификатор места – это уникальный текстовый идентификатор. Длина идентификатора может быть разной (максимальная длина идентификаторов мест не ограничена). Примеры:

  • ChIJgUbEo8cfqokR5lP9_Wh_DaM
  • GhIJQWDl0CIeQUARxks3icF8U8A
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
  • IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ

Идентификаторы мест есть у большинства объектов на карте, в том числе компаний, ориентиров, парков и перекрестков. Одному местоположению могут соответствовать несколько идентификаторов мест, а сами идентификаторы могут меняться со временем.

Один и тот же идентификатор места можно использовать и с Places API, и с другими API платформы Google Карт. Places API, и с рядом других API платформы Google Карт, например Maps JavaScript API, Geocoding API, Maps Embed API и Roads API.

Как получить данные о месте по идентификатору

Чаще всего идентификаторы мест ищут с помощью Places API или библиотеки Places в Maps JavaScript API. Затем используйте идентификатор места, чтобы получить информацию о нем. чтобы запрашивать и получать данные о месте в будущем. Подробнее о том, как сохранить идентификаторы мест для последующего использования…

В примерах ниже показано, как запросить URL значка для Places API (нового) и Places API (устаревшего).

Places API (новинка)

Чтобы найти идентификатор места с помощью Places API, выполните запрос текстового поиска (New).

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

Ответ содержит идентификатор места в поле id, как показано ниже.

{
  "places": [
    {
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Peace Harmony",
        "languageCode": "en"
      }
    },
  ...
}

Теперь вы можете создать запрос информация о местах (New), добавив идентификатор места в URL запроса:

https://places.googleapis.com/v1/places/ChIJs5ydyTiuEmsR0fRSlU0C7k0?fields=id,displayName&key=API_KEY

Places API (устаревшая версия)

С помощью Places API можно найти идентификатор места, отправив запрос поиск мест.

В примере ниже показан запрос на поиск мест типа "ресторан" в радиусе 1500 м от точки в Сиднее (Австралия), содержащих слово "круиз".

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=1500&type=restaurant&keyword=cruise&key=YOUR_API_KEY

Ответ содержит идентификатор места в поле place_id, как показано в этом фрагменте:

{
  "html_attributions" : [],
  "results" : [
    {
      "geometry" : {
        "location" : {
          "lat" : -33.870775,
          "lng" : 151.199025
        }
      },
      ...
      "place_id" : "ChIJrTLr-GyuEmsRBfy61i59si0",
      ...
    }
  ],
  "status" : "OK"
}

Теперь вы можете отправить запрос информации о местах (устаревший), указав идентификатор места в параметре place_id:

https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJrTLr-GyuEmsRBfy61i59si0&key=YOUR_API_KEY

Как сохранять идентификаторы мест для последующего использования

На идентификаторы мест не распространяются ограничения по кешированию, указанные в пункте 3.2.3(b) Условий использования платформы Google Карт. Поэтому их можно хранить для последующего использования.

Как обновить сохраненные идентификаторы мест

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

Places API (новинка)

Например, при использовании информация о местах (New):

https://places.googleapis.com/v1/places/ChIJ05IRjKHxEQ0RJLV_5NLdK2w?fields=id&key=API_KEY

Places API (устаревший)

Например, при использовании Places API (прежней версии):

https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJ05IRjKHxEQ0RJLV_5NLdK2w&fields=place_id&key=API_KEY

Запрос активирует SKU Place Detail New Essentials IDs Only или Places Details – ID Refresh.

Коды ошибок при использовании идентификаторов мест

INVALID_REQUEST

Код статуса INVALID_REQUEST означает, что указанный идентификатор места недействителен. Вы можете получить код INVALID_REQUEST, если идентификатор места был обрезан или изменен другим способом и его значение стало недействительным.

NOT_FOUND

Код статуса NOT_FOUND означает, что указанный идентификатор места устарел. Так происходит, если организация закрывается или ее адрес меняется. Также это может быть результатом обновления идентификаторов мест в базе данных Google Карт (место получает новый идентификатор, и поэтому запрос со старым возвращает ответ NOT_FOUND).

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

Некоторые идентификаторы мест при запросах к API могут возвращать ответ NOT_FOUND или другой идентификатор. К таким относятся:

  • Почтовые адреса, для которых нет точных совпадений в базе данных Google Карт и которые выводятся по аналогии со схожими адресами.
  • Отрезки длинного маршрута, в запросе которого указан город или другой населенный пункт.
  • Перекрестки.
  • Места с компонентом адреса типа subpremise.

Такие идентификаторы часто принимают форму длинной строки (длина идентификатора места не ограничена). Пример:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4