Zu Place Photo migrieren (Neu)

Das Places SDK for iOS unterstützt das vorhandene Place Photo. Wenn Sie das vorhandene Place Photo bereits kennen, werden in der neuen Version von Place Photo folgende Änderungen vorgenommen:

  • Verwendet ein neues Preismodell. Preisinformationen für alle APIs finden Sie unter Places SDK for iOS (neu) – Preise.

  • Das vorhandene Ortsfoto unterstützte eine maximale Fotogröße von 1.600 × 1.600 Pixeln. „Place Photo (New)“ unterstützt Größen von bis zu 4.800 × 4.800 Pixeln.

  • Um eine Anfrage zu stellen, rufen Sie die neue Methode GMSPlacesClient fetchPhotoWithRequest:callback: auf.

  • Übergeben Sie die Anfrage an die Anfrage:

  • Jedes Foto wird durch eine GMSPlacePhotoMetadata-Instanz dargestellt. Beim Places SDK for iOS (New) enthält die GMSPlacePhotoMetadata-Instanz ein neues authorAttribution-Feld, das durch die neue Klasse GMSPlaceAuthorAttribution dargestellt wird.

    Wenn die zurückgegebene GMSPlacePhotoMetadata-Instanz attributions oder authorAttribution enthält, müssen Sie diese Attributionen überall dort, wo das Bild zu sehen ist, in Ihre Anwendung einfügen. Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.

Beispielanfrage

Mit der folgenden Beispielmethode wird eine Orts-ID verwendet, mit der das erste Foto aus der zurückgegebenen Liste abgerufen wird. Sie können diese Methode als Vorlage für die Methode verwenden, die Sie in Ihrer eigenen Anwendung erstellen.

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