Сведения о месте (новое)

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

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 может содержать сведения об авторстве и авторстве. Если вы отображаете обзор в своем приложении, вы также должны указать любую ссылку или ссылку на автора.

Дополнительную информацию см. в документации по атрибуции .