Migra a Place Photos (nuevo)

El SDK de Places para iOS (heredado) admite Place Photos (heredado). Si conoces Place Photos (heredado), Place Photos (nuevo) realiza los siguientes cambios:

  • Usa un modelo de precios nuevo. Para obtener información sobre los precios de todas las APIs, consulta Uso y facturación.

  • Place Photos (heredada) admitía un tamaño máximo de foto de 1,600 x 1,600 píxeles. Place Photos (nuevo) admite tamaños de hasta 4,800 por 4,800 píxeles.

  • Para realizar una solicitud, llama al nuevo método GMSPlacesClient fetchPhotoWithRequest:callback:.

  • Pasa a la solicitud:

  • Cada foto se representa con una instancia de GMSPlacePhotoMetadata. En el SDK de Places para iOS (nuevo), la instancia de GMSPlacePhotoMetadata contiene un nuevo campo authorAttribution representado por la nueva clase GMSPlaceAuthorAttribution.

    Si la instancia GMSPlacePhotoMetadata que se muestra incluye attributions o authorAttribution, debes incluir estas atribuciones en tu aplicación en cualquier lugar donde muestres la imagen. Consulta la documentación sobre las atribuciones.

Ejemplo de solicitud

En el siguiente ejemplo, el método toma un ID de lugar y 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
    }
  }];
}];