Places SDK для iOS поддерживает Place Photo (устаревшую версию) . Если вы знакомы с Place Photo (устаревшую версию), Place Photo (новая версия) вносит следующие изменения:
Использует новую модель ценообразования. Информацию о ценах для всех API см. в разделе «Цены на Places SDK для iOS (новый)» .
Place Photo (устаревшая версия) поддерживала максимальный размер фотографий 1600 на 1600 пикселей. Place Photo (новая версия) поддерживает размеры до 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 } }]; }];