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