Migrer vers Place Photo (nouveau)

Le SDK Places pour iOS est compatible avec Place Photo. Si vous connaissez bien Place Photo, la nouvelle version de Place Photo apporte les modifications suivantes:

  • Utilise un nouveau modèle de tarification. Pour obtenir des informations sur la tarification de toutes les API, consultez Tarifs du SDK Places pour iOS (nouveau).

  • La taille maximale des photos était de 1 600 x 1 600 pixels pour l'élément Place Photo existant. Place Photo (nouvelle version) accepte les tailles jusqu'à 4 800 x 4 800 pixels.

  • Pour effectuer une requête, appelez la nouvelle méthode GMSPlacesClient fetchPhotoWithRequest:callback:.

  • Transmettez à la requête:

  • Chaque photo est représentée par une instance GMSPlacePhotoMetadata. Pour le SDK Places pour iOS (nouveau), l'instance GMSPlacePhotoMetadata contient un nouveau champ authorAttribution représenté par la nouvelle classe GMSPlaceAuthorAttribution.

    Si l'instance GMSPlacePhotoMetadata renvoyée inclut attributions ou authorAttribution, vous devez inclure ces attributions dans votre application partout où vous affichez l'image. Consultez la documentation sur les attributions.

Exemple de requête

L'exemple de méthode suivant prend un ID de lieu et obtient la première photo de la liste renvoyée. Vous pouvez utiliser cette méthode comme modèle pour la méthode que vous allez créer dans votre propre application.

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
    }
  }];
}];