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

Выберите платформу: Android iOS JavaScript Веб-сервисы

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

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

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

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

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

Обзор

ID места – это уникальный текстовый идентификатор места в Google Картах. Длина идентификатора может быть разной, ограничений по максимальной длине нет. Примеры:

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

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

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

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

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

Чаще всего разработчики ищут ID по названию места (например, с помощью Places API или библиотеки Places в Maps JavaScript API) и затем сохраняют его, чтобы запрашивать и получать данные о месте в будущем. Подробнее об этом читайте ниже.

Пример использования библиотеки Places с Maps JavaScript API

Чтобы использовать ID места в приложении на JavaScript, сначала найдите идентификатор, отправив запрос в Поиск мест (поле PlaceResult), или с помощью команды getPlace() в сервисе Place Autocomplete. Затем используйте ID места, чтобы получить информацию о нём.

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

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

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

Обновление сохраненных идентификаторов

Мы рекомендуем обновлять идентификаторы мест, если они хранятся у вас более 12 месяцев. Сделать это можно бесплатно, отправив запрос информации о месте и определив в нем только поле place_id параметра fields. Запрос активирует SKU Places Details – ID Refresh. Также этот запрос может вернуть код NOT_FOUND. Один из способов обойти эту ошибку – сохранить исходный запрос, вернувший идентификаторы всех мест. Если идентификатор какого-либо места станет недействителен, вы сможете получить по этому запросу новые результаты (с данными нужного места или без них). За такие запросы взимается плата.

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

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

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

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

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

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

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