В Places SDK для iOS поддерживается Place Photo (Legacy) . Если вы знакомы с Place Photo (Legacy), то в Place Photo (New) внесены следующие изменения:
Используется новая модель ценообразования. Информацию о ценах на все API см. в разделе «Цены на SDK Places для iOS (новая версия)» .
Функция «Загрузить фото» (устаревшая версия) поддерживала максимальный размер фотографий 1600 на 1600 пикселей. Функция «Загрузить фото» (новая версия) поддерживает размеры до 4800 на 4800 пикселей.
Для отправки запроса вызовите новый метод
GMSPlacesClient fetchPhotoWithRequest:callback::.Передайте запрос:
Экземпляр нового класса
GMSFetchPhotoRequest, определяющий все параметры запроса, включая максимальный размер изображения.Функция обратного вызова типа
GMSPlacePhotoMetadataResultCallbackдля обработки ответа.
Каждая фотография представлена экземпляром
GMSPlacePhotoMetadata. В версии Places SDK для iOS (новая) экземплярGMSPlacePhotoMetadataсодержит новое полеauthorAttributionпредставленное новым классомGMSPlaceAuthorAttribution.Если возвращаемый экземпляр
GMSPlacePhotoMetadataсодержитattributionsилиauthorAttribution, вам необходимо включить эти атрибуты в ваше приложение везде, где вы отображаете изображение. См. документацию по атрибутам .
Пример запроса
Приведенный ниже пример метода принимает идентификатор места и получает первую фотографию из возвращаемого списка. Вы можете использовать этот метод в качестве шаблона для метода, который вы создадите в своем собственном приложении.
Быстрый
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Request list of photos for a place placesClient.lookUpPhotos(forPlaceID: placeID) { (photos, error) in guard let photoMetadata: GMSPlacePhotoMetadata = photos?.results[0] else { return } // Request individual photos in the response list let fetchPhotoRequest = GMSFetchPhotoRequest(photoMetadata: photoMetadata, maxSize: CGSizeMake(4800, 4800)) self.client.fetchPhoto(with: fetchPhotoRequest, callback: { (photoImage: UIImage?, error: Error?) in guard let photoImage, error == nil else { print("Handle photo error: ") return } print("Display photo Image: ") } ) }
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; [placesClient lookUpPhotosForPlaceID:placeID callback: ^(GMSPlacePhotoMetadataList *list, NSError *error) { GMSPlacePhotoMetadata *photoMetadata = [list results][0]; // Request individual photos in the response list GMSFetchPhotoRequest *fetchPhotoRequest = [[GMSFetchPhotoRequest alloc] initWithPhotoMetadata:photoMetadata maxSize:CGSizeMake(4800, 4800)]; [placesClient fetchPhotoWithRequest:fetchPhotoRequest callback: ^(UIImage *_Nullable photoImage, NSError *_Nullable error) { if (error == nil) { // Display photo } }]; }];