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); } }];