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

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

Введение

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

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

Найти идентификатор определенного места

Ищете идентификатор конкретного места? Воспользуйтесь поиском по идентификатору ниже, чтобы найти место и получить его идентификатор:

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

Обзор

Идентификатор места — это текстовый идентификатор, однозначно определяющий место. Длина идентификатора может варьироваться (максимальной длины для идентификаторов места нет). Примеры:

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

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

Вы можете использовать один и тот же идентификатор места в API Places и ряде API платформы Google Карт. Например, один и тот же идентификатор места можно использовать для ссылки на место в API Places , API JavaScript Карт , API геокодирования , API встраивания Карт и API дорог .

Получить информацию о месте, используя идентификатор места

Распространенный способ использования идентификаторов мест — поиск места (например, с помощью API Places или библиотеки Places в JavaScript API Карт) и последующее использование возвращённого идентификатора для получения информации о нём. Вы можете сохранить идентификатор места и использовать его для получения той же информации позже. Подробнее о сохранении идентификаторов мест читайте ниже.

Пример использования Places SDK для iOS

Идентификатор места — это текстовый идентификатор, однозначно определяющий место. В Places SDK для iOS идентификатор места можно получить из объекта GMSPlace . Вы можете сохранить идентификатор места и использовать его для последующего получения объекта GMSPlace .

Чтобы получить место по идентификатору, вызовите GMSPlacesClient fetchPlaceFromPlaceID: , передав следующие параметры:

  • Строка, содержащая идентификатор места.
  • Один или несколько полей GMSPlaceField , указывающих типы данных, которые необходимо вернуть.
  • Токен сеанса, если вызов выполняется для завершения запроса автодополнения. В противном случае передайте nil.
  • GMSPlaceResultCallback для обработки результата.

API вызывает указанный метод обратного вызова, передавая объект GMSPlace . Если место не найдено, объект места равен нулю.

Places Swift SDK для iOS

// Initialize Places Swift Client.
let placesClient = PlacesClient.shared

// A hotel in Saigon with an attribution
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
    
// Fetch Place Request.
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.displayName]
)
    
Task {
  switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
  case .success(let place):
    print("The selected place is: \(place.displayName): \(String(describing: place.description))")
  case .failure(let placesError):
    print("Place not found: \(placeID); \(placesError)")
  }
}

Быстрый

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

Сохраните идентификаторы мест для дальнейшего использования.

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

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

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

Этот вызов активирует функцию обновления идентификатора места (SKU) «Сведения о месте» .

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

INVALID_REQUEST

Код статуса INVALID_REQUEST указывает на то, что указанный идентификатор места недействителен. INVALID_REQUEST может быть возвращён, если идентификатор места был усечён или иным образом изменён и больше не является верным.

NOT_FOUND

Код статуса NOT_FOUND указывает на то, что указанный идентификатор места устарел. Идентификатор места может устареть, если компания закрывается или переезжает на новое место. Идентификаторы мест также могут меняться из-за обновлений базы данных Google Карт. В таких случаях место может получить новый идентификатор, а старый идентификатор вернёт ответ NOT_FOUND .

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

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

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

Эти идентификаторы часто представляют собой длинную строку (максимальной длины для идентификаторов мест не существует). Например:

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