Идентификаторы мест однозначно идентифицируют место в базе данных 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