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

Выберите платформу: Android iOS JavaScript Web Service

Идентификаторы мест однозначно идентифицируют место в базе данных Google Places и на Google Maps. Идентификаторы мест принимаются в запросах к следующим 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.
  • Поиск и стилизация граничных полигонов с использованием стилизации границ на основе данных.

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

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

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

Обзор

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

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

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

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

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

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

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

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

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

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

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

Место 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 Maps, Google рекомендует обновлять идентификаторы мест, если им больше 12 месяцев. Вы можете обновить идентификаторы мест бесплатно, сделав запрос Place Details , указав только поле GMSPlaceFieldPlaceID в параметре fields .

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

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

INVALID_REQUEST

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

NOT_FOUND

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

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

Некоторые типы идентификаторов мест иногда могут вызывать ответ 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