El SDK de Places para iOS admite Place Photo. Si conoces la Place Photos existente, el nueva versión de Place Photos realiza los siguientes cambios:
Usa un modelo de precios nuevo. Para obtener información sobre los precios de todas las APIs, consulta Precios del SDK de Places para iOS (nuevo).
La Place Photos existente admitía una foto máxima de 1,600 por 1,600 píxeles. Place Photo (nuevo) admite tamaños de hasta 4800 por 4800 píxeles.
Para realizar una solicitud, llama al nuevo
GMSPlacesClient fetchPhotoWithRequest:callback:
.Pasa a la solicitud:
Una instancia del nuevo
GMSFetchPhotoRequest
que define todos los parámetros de solicitud, incluido el tamaño máximo de la imagen.Una devolución de llamada de tipo
GMSPlacePhotoMetadataResultCallback
para manejar la respuesta.
Cada foto está representada por un
GMSPlacePhotoMetadata
instancia. En el caso del SDK de Places para iOS (nuevo), utilizaGMSPlacePhotoMetadata
. contiene una nuevaauthorAttribution
de campo representado por el nuevo GMSPlaceAuthorAttribution clase.Si la instancia
GMSPlacePhotoMetadata
que se muestra incluyeattributions
oauthorAttribution
, debes incluir estas atribuciones en tu aplicación dondequiera que muestres la imagen. Consulta la documentación sobre atribuciones.
Ejemplo de solicitud
En el siguiente método de ejemplo, se toma un ID de lugar y se obtiene la primera foto de la lista devuelta. Puedes usar este método como plantilla para el método que crear en tu propia aplicación.
Swift
// 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 } }]; }];