Yerin Fotoğrafları

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Platform seçin: Android iOS JavaScript Web Hizmeti

iOS'ta Yerler SDK'sını kullanarak uygulamanızda yer fotoğrafları görüntüleyebilirsiniz. Fotoğraflar hizmetinin döndürdüğü fotoğraflar, işletme sahipleri ve kullanıcıların katkıda bulunduğu fotoğraflar dahil olmak üzere çeşitli kaynaklardan gelmektedir. Bir yerin fotoğraflarını almak için aşağıdaki adımları uygulamalısınız:

  1. [GMSPlacesClient fetchPlaceFromPlaceId] numaralı telefonu arayın, yer kimliği ve geri çağırma içeren bir dize iletin. Bu işlem, geri çağırmayı bir GMSPlacePhotoMetadataList nesnesiyle çağırır.
  2. GMSPlacePhotoMetadataList nesnesinde results mülküne erişin ve diziden yüklenecek fotoğrafları seçin.
  3. Bu listeden yüklemek için her GMSPlacePhotoMetadata için [GMSPlacesClient loadPlacePhoto:callback:] veya [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] çağırın. Bunlar, kullanılabilir bir UIImage ile geri çağırmayı çağırır. Fotoğrafların maksimum genişliği veya yüksekliği 1.600 piksel olabilir.

Örnek kod

Aşağıdaki örnek yöntem bir yer kimliği alır ve döndürülen listedeki ilk fotoğrafı alır. Bu yöntemi, kendi uygulamanızda oluşturacağınız yöntem için bir şablon olarak kullanabilirsiniz.

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

Önbelleğe alma

[GMSPlacesClient loadPlacePhoto:callback:] veya [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] kullanılarak yüklenen fotoğraflar, paylaşılan NSURLCache konumundaki Temel URL yükleme sistemi tarafından hem diskte hem de bellekte önbelleğe alınır.

Önbelleğe alma davranışını yapılandırmak için, uygulama temsilcinizin application:didFinishLaunchingWithOptions: yönteminde paylaşılan URL önbelleğini [NSURLCache setSharedURLCache:] kullanarak değiştirebilirsiniz.

Uygulamanızın iOS için Yerler SDK'sı ile bir NSURLCache paylaşmasını istemiyorsanız yeni bir NSURLCache oluşturabilir ve bunu paylaşılan önbellek olarak ayarlamadan yalnızca uygulamanızda kullanabilirsiniz.

İlişkilendirmeler

Çoğu durumda, yer fotoğrafları atıf olmadan kullanılabilir veya gerekli atıfın resmin bir parçası olması gerekir. Ancak, döndürülen GMSPlacePhotoMetadata örneğinde bir atıf varsa resmi gösterdiğiniz her yerde ek ilişkilendirmeyi uygulamanıza dahil etmeniz gerekir. İlişkilendirmedeki bağlantıların dokunulması gerektiğini unutmayın. İlişkilendirmeler ile ilgili belgelere bakın.

Kullanım sınırları

Bir resim almanın tek kota birimi vardır; fotoğraf meta verilerini almak için herhangi bir kullanım sınırı yoktur. Kullanım ve faturalandırma hakkında daha fazla bilgi edinin.