Переход на информацию о местах (New)

Places API (устаревший) поддерживает информацию о местах (устаревшая). Если вы знакомы с устаревшей версией Places API, обратите внимание на следующие изменения в новой версии Place Details:

  • Использует новую модель ценообразования. Сведения о ценах на все API приведены в статье Статистика использования и оплата.

  • Необходимо использовать маску поля. В ответе должны быть указаны поля, которые вы хотите получить. Списка полей, возвращаемых по умолчанию, нет. Если вы не укажете этот список, методы вернут ошибку.

  • Чтобы отправить запрос, вызовите новый метод GMSPlacesClient fetchPlaceWithRequest:.

  • Передайте в запрос:

    • Экземпляр нового класса GMSFetchPlaceRequest, который определяет все параметры запроса, например идентификатор места и токен сеанса.

    • Обратный вызов типа GMSPlaceResultCallback для обработки ответа.

  • Ответ содержит экземпляр объекта GMSPlace с информацией о месте. Значения свойства types экземпляра GMSPlace теперь определяются таблицей А и таблицей Б.

  • Экземпляр GMSPlace в ответе содержит новое свойство reviews типа GMSPlaceReview. Если в вашем приложении показывается информация, полученная из экземпляра GMSPlace, например фотографии и отзывы, в нем также должны быть указаны необходимые сведения об авторстве.

    Подробнее о том, как добавлять текст с указанием авторства…

  • Экземпляр ответа GMSPlace содержит следующие функции-:

    • isOpen определяет, открыто ли место в указанное время.

    • isOpenAtDate рассчитывает, открыто ли место в определенную дату.

    Эти функции доступны, только если вы включите Places SDK для iOS. Они недоступны, если вы включите Places SDK для iOS (новая версия). Подробнее о том, как выбрать версию SDK…

Пример запроса

В новом сервисе «Информация о местах» вы отправляете запрос и передаете все параметры в экземпляре GMSFetchPlaceRequest. В этом примере также используется маска поля, поэтому в ответе будут только отображаемое название и URL сайта места:

Swift

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

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

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

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields 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);
  }
}];