Places SDK для iOS (новинка) предоставляет вашему приложению обширную информацию о местах, включая название и адрес места, географическое положение, указанное в виде координат широты и долготы, тип места (например, ночной клуб, зоомагазин, музей), и многое другое. Чтобы получить доступ к этой информации для конкретного места, вы можете использовать идентификатор места — стабильный идентификатор, который однозначно идентифицирует место.
Получить информацию о месте
Класс GMSPlace
содержит информацию о конкретном месте, включая все поля данных, показанные в Поля данных места (новое) . Получите объект GMSPlace
, вызвав GMSPlacesClient fetchPlaceWithRequest:
, передав объект GMSFetchPlaceRequest
и метод обратного вызова типа GMSPlaceResultCallback
.
Объект GMSFetchPlaceRequest
указывает:
- (Обязательно) Идентификатор места — уникальный идентификатор места в базе данных Google Адресов и на Картах Google.
- (Обязательно) Список полей, возвращаемых в объекте
GMSPlace
, также называемый маской поля , как определеноGMSPlaceProperty
. Если вы не укажете хотя бы одно поле в списке полей или опустите список полей, вызов вернет ошибку. - (Необязательно) Код региона, используемый для форматирования ответа.
- (Необязательно) Токен сеанса, используемый для завершения сеанса автозаполнения (нового).
Запросить информацию о месте
В этом примере место получает место по идентификатору, передавая следующие параметры:
- Идентификатор места
ChIJV4k8_9UodTERU5KXbkYpSYs
. - Список полей, указывающий возврат названия места и URL-адреса веб-сайта.
-
GMSPlaceResultCallback
для обработки результата.
API вызывает указанный метод обратного вызова, передавая объект GMSPlace
. Если место не найдено, объект места равен нулю.
Быстрый
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue} // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil) client.fetchPlace(with: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in guard let place, error == nil else { return } print("Place found: \(String(describing: place.name))") })
Цель-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite]; // Create the GMSFetchPlaceRequest object. GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { NSLog(@"Place Found: %@", place.name); NSLog(@"The place URL: %@", place.website); } }];
GooglePlacesSwift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.name, .website] ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): // Handle place case .failure(let placesError): // Handle error }
Ответ «Подробнее о месте»
Place Details возвращает объект GMSPlace
, содержащий сведения о месте. В объекте GMSPlace
заполняются только поля, указанные в списке полей.
Наряду с полями данных объект GMSPlace
в ответе содержит следующие функции-члены:
-
isOpen
вычисляет, открыто ли место в данный момент. -
isOpenAtDate
вычисляет, открыто ли место в данную дату.
Обязательные параметры
Используйте объект GMSFetchPlaceRequest
, чтобы указать необходимые параметры.
Идентификатор места
Идентификатор места , используемый в Places SDK для iOS, совпадает с идентификатором, который используется в Places API, Places SDK для Android и других API Google. Каждый идентификатор места может относиться только к одному месту, но одно место может иметь более одного идентификатора места.
Существуют обстоятельства, которые могут привести к тому, что месту будет присвоен новый идентификатор. Например, это может произойти, если бизнес переезжает на новое место.
Когда вы запрашиваете место, указав идентификатор места, вы можете быть уверены, что всегда получите в ответ одно и то же место (если оно еще существует). Однако обратите внимание, что ответ может содержать идентификатор места, отличный от идентификатора в вашем запросе.
Список полей
Когда вы запрашиваете сведения о месте, вы должны указать возвращаемые данные в объекте GMSPlace
для этого места в виде маски поля. Чтобы определить маску поля, передайте массив значений из GMSPlaceProperty
в объект GMSFetchPlaceRequest
. Маскирование полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и затрат на выставление счетов.
Укажите одно или несколько из следующих полей:
Следующие поля активируют SKU сведений о месте (только идентификатор) :
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
,GMSPlacePropertyPhotos
Следующие поля активируют SKU «Сведения о месте (только местоположение)» :
GMSPlacePropertyAddressComponents
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
Следующие поля активируют SKU «Сведения о месте (базовый)» :
GMSPlacePropertyBusinessStatus
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyWheelchairAccessibleEntrance
Следующие поля активируют SKU сведений о месте (расширенный) :
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
, gmsplacepropertyopeninghours,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Следующие поля активируют SKU сведений о месте (предпочтительно) :
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
В следующем примере передается список из двух значений полей , чтобы указать, что объект GMSPlace
, возвращаемый запросом, содержит поля name
и placeID
:
Быстрый
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
Цель-C
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
Дополнительные параметры
Используйте объект GMSFetchPlaceRequest
, чтобы указать необязательные параметры.
Код региона
Код региона, используемый для форматирования ответа в виде двухсимвольного значения кода CLDR . Этот параметр также может оказывать влияние на результаты поиска. Значения по умолчанию нет.
Если название страны в поле адреса в ответе соответствует коду региона, код страны в адресе опускается.
Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для организации «Соединенное Королевство Великобритании и Северной Ирландии»). Параметр может повлиять на результаты в соответствии с действующим законодательством.
сессионный токен
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы автозаполнения (новые) как «сеансы». Автозаполнение (новое) использует токены сеанса для группировки запроса и размещения этапов выбора пользовательского поиска с автозаполнением в отдельный сеанс для целей выставления счетов. Токены сеанса передаются в вызовы Place Details (New), которые следуют за вызовами Autocomplete (New). Дополнительные сведения см. в разделе Токены сеанса .
Отображение авторства в вашем приложении
Когда ваше приложение отображает информацию, полученную от GMSPlacesClient
, например фотографии и обзоры, приложение также должно отображать необходимые сведения об авторстве.
Например, свойство reviews
объекта GMSPlacesClient
содержит массив, содержащий до пяти объектов GMSPlaceReview
. Каждый объект GMSPlaceReview
может содержать сведения об авторстве и авторстве. Если вы отображаете обзор в своем приложении, вы также должны указать любую ссылку или ссылку на автора.
Дополнительную информацию см. в документации по атрибуции .