Fotos zum Ort

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Plattform auswählen: Android iOS JavaScript Webdienst

Sie können das Places SDK for iOS verwenden, um Ortsfotos anzufordern, die in Ihrer App angezeigt werden. Vom Fotodienst zurückgegebene Fotos stammen aus unterschiedlichen Quellen, einschließlich Fotos von Unternehmensinhabern und Nutzern. So rufst du Fotos für einen Ort ab:

  1. Rufen Sie [GMSPlacesClient fetchPlaceFromPlaceId] auf und übergeben Sie einen String mit einer Orts-ID und einem Callback. Dadurch wird der Callback mit einem GMSPlacePhotoMetadataList-Objekt aufgerufen.
  2. Greifen Sie im Objekt GMSPlacePhotoMetadataList auf das Attribut results zu und wählen Sie die zu ladenden Fotos aus dem Array aus.
  3. Rufe für jeden zu ladenden GMSPlacePhotoMetadata aus dieser Liste [GMSPlacesClient loadPlacePhoto:callback:] oder [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] auf. Damit wird der Callback mit einem verwendbaren UIImage aufgerufen. Die maximale Breite oder Höhe von Fotos beträgt 1.600 Pixel.

Beispielcode

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

Swift

// Specify the place data types to return (in this case, just photos).
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.photos.rawValue))!

placesClient?.fetchPlace(fromPlaceID: "INSERT_PLACE_ID_HERE",
                         placeFields: fields,
                         sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    // Get the metadata for the first photo in the place photo metadata list.
    let photoMetadata: GMSPlacePhotoMetadata = place.photos![0]

    // Call loadPlacePhoto to display the bitmap and attribution.
    self.placesClient?.loadPlacePhoto(photoMetadata, callback: { (photo, error) -> Void in
      if let error = error {
        // TODO: Handle the error.
        print("Error loading photo metadata: \(error.localizedDescription)")
        return
      } else {
        // Display the first image and its attributions.
        self.imageView?.image = photo;
        self.lblText?.attributedText = photoMetadata.attributions;
      }
    })
  }
})

Objective-C

// Specify the place data types to return (in this case, just photos).
GMSPlaceField fields = (GMSPlaceFieldPhotos);

NSString *placeId = @"INSERT_PLACE_ID_HERE";

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    GMSPlacePhotoMetadata *photoMetadata = [place photos][0];
    [self->_placesClient loadPlacePhoto:photoMetadata callback:^(UIImage * _Nullable photo, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error loading photo metadata: %@", [error localizedDescription]);
        return;
      } else {
        // Display the first image and its attributions.
        self->imageView.image = photo;
        self->lblText.attributedText = photoMetadata.attributions;
      }
    }];
  }
}];

Caching

Fotos, die mit [GMSPlacesClient loadPlacePhoto:callback:] oder [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] geladen werden, werden sowohl vom Cache für die Fundament-URL im freigegebenen NSURLCache auf dem Laufwerk als auch im Arbeitsspeicher zwischengespeichert.

Zum Konfigurieren des Caching-Verhaltens können Sie den gemeinsamen URL-Cache mit [NSURLCache setSharedURLCache:] in der Methode application:didFinishLaunchingWithOptions: des Anwendungsdelegats ändern.

Wenn du nicht möchtest, dass deine App eine NSURLCache mit dem Places SDK for iOS teilt, kannst du eine neue NSURLCache erstellen und diese ausschließlich in deiner App verwenden, ohne sie als gemeinsamen Cache festzulegen.

Attribution

In den meisten Fällen können Ortsfotos ohne Namensnennung verwendet werden oder die erforderliche Namensnennung ist im Bild enthalten. Wenn die zurückgegebene GMSPlacePhotoMetadata-Instanz jedoch eine Attribution enthält, müssen Sie die zusätzliche Attribution in der Anwendung überall dort angeben, wo Sie das Bild anzeigen. Links in der Attribution müssen antippbar sein. Weitere Informationen zu Quellenangaben

Nutzungslimits

Das Abrufen eines Bildes kostet eine Kontingenteinheit. Es gibt keine Nutzungslimits für das Abrufen von Fotometadaten. Weitere Informationen zur Nutzung und Abrechnung