El SDK de Places para iOS admite la foto de Place existente. Si conoces la Foto de Place existente, la nueva versión de Foto de Place realiza los siguientes cambios:
Usa un nuevo modelo de precios. Para obtener información sobre los precios de todas las APIs, consulta Precios del SDK de Places para iOS (nuevo).
La Foto de lugar existente admitía un tamaño máximo de 1,600 x 1,600 píxeles. La foto de Place (nueva) admite tamaños de hasta 4,800 x 4,800 píxeles.
Para realizar una solicitud, llama al nuevo método
GMSPlacesClient fetchPhotoWithRequest:callback:
.Pasa lo siguiente a la solicitud:
Una instancia de la nueva clase
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 controlar la respuesta
Cada foto se representa con una instancia de
GMSPlacePhotoMetadata
. En el caso del SDK de Places para iOS (nuevo), la instancia deGMSPlacePhotoMetadata
contiene un nuevo campoauthorAttribution
representado por la nueva claseGMSPlaceAuthorAttribution
.Si la instancia de
GMSPlacePhotoMetadata
que se muestra incluyeattributions
oauthorAttribution
, debes incluir estas atribuciones en tu aplicación dondequiera que muestres la imagen. Consulta la documentación sobre las 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 que se muestra. Puedes usar este método como plantilla para el método que crearás en tu propia app.
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 } }]; }];