Places SDK для iOS поддерживает существующие сведения о месте . Если вы знакомы с существующим пакетом Places SDK для iOS, новая версия Place Details вносит следующие изменения:
Использует новую модель ценообразования. Информацию о ценах на все API см. в разделе Цены на Places SDK для iOS (новая версия) .
Требуется маскировка полей. Вы должны указать, какие поля вы хотите вернуть в ответе. Не существует списка возвращаемых полей по умолчанию. Если вы опустите этот список, методы вернут ошибку.
Чтобы сделать запрос, вызовите новый метод
GMSPlacesClient fetchPlaceWithRequest:
Переходим к запросу:
Экземпляр нового класса
GMSFetchPlaceRequest
, который определяет все параметры запроса, такие как идентификатор места и токен сеанса.Обратный вызов типа
GMSPlaceResultCallback
для обработки ответа.
Ответ содержит экземпляр
GMSPlace
содержащий подробную информацию об этом месте. Значения свойстваtypes
экземпляраGMSPlace
теперь определяются таблицами A и Table B.Экземпляр ответа
GMSPlace
содержит новое свойствоreviews
типаGMSPlaceReview
. Когда ваше приложение отображает информацию, полученную из экземпляраGMSPlace
, например фотографии и обзоры, приложение также должно отображать необходимые сведения об авторстве.Дополнительную информацию см. в документации по атрибуции .
Экземпляр ответа
GMSPlace
содержит следующие функции-члены:isOpen
вычисляет, открыто ли место в данный момент.isOpenAtDate
вычисляет, открыто ли место в данную дату.
Эти функции доступны только при включении Places SDK для iOS . Они недоступны при включении Places SDK для iOS (новая версия) . Дополнительную информацию см. в разделе Выбор версии SDK .
Пример запроса
С помощью Place Details (New) вы делаете запрос и передаете все параметры в экземпляр GMSFetchPlaceRequest
. В этом примере также используется маска поля, поэтому ответ включает только отображаемое имя и URL-адрес веб-сайта для этого места:
Быстрый
// 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))") })
Цель-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); } }];