Yerin Fotoğrafları

Platform seçin: Android iOS JavaScript Web Hizmeti

iOS için Yerler SDK'sını kullanarak yer fotoğraflarının görüntülenmesini isteyebilirsiniz. en iyi yoludur. Fotoğraflar hizmeti tarafından döndürülen fotoğraflar çeşitli kaynakları (işletme sahipleri ve kullanıcıların katkıda bulunduğu fotoğraflar dahil) Geri almak için şu adımları uygulamanız gerekir:

  1. [GMSPlacesClient fetchPlaceFromPlaceId] numaralı telefonu arayın, bir dize iletildiğinden emin olun. Bu işlem, geri çağırmayı sağlar bir GMSPlacePhotoMetadataList ile nesnesini tanımlayın.
  2. GMSPlacePhotoMetadataList results nesne erişimi özellik ve diziden yüklenecek fotoğrafları seçin.
  3. Her bir GMSPlacePhotoMetadata için şu liste görüşmesinden yüklenecek: [GMSPlacesClient loadPlacePhoto:callback:] veya [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]. Bunlar, geri çağırmayı kullanılabilir bir UIImage ile çağırır. Fotoğraflarda maksimum sınır 1.600 piksel genişliğinde veya yüksekliğinde olmalıdır.

Örnek kod

Aşağıdaki örnek yöntem bir yer kimliği alır ve izin verilen sonuçlar listesidir. Bu yöntemi şablon olarak kullanabilirsiniz. kendi uygulamanızda oluşturabilirsiniz.

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

Fotoğraflar [GMSPlacesClient loadPlacePhoto:callback:] kullanılarak yüklendi veya [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] Temel URL yükleme sistemi tarafından hem diskte hem de bellekte önbelleğe alınırlar paylaşılan NSURLCache bölümünde görünür.

Önbelleğe alma davranışını yapılandırmak için paylaşılan URL önbelleğini [NSURLCache setSharedURLCache:] başvurunuzdaki yetki verdiğiniz kullanıcının application:didFinishLaunchingWithOptions: hesabında yöntemidir.

Uygulamanızın bir NSURLCache öğesini iOS için Yerler SDK'sı ile yeni bir NSURLCache oluşturup bunu kullanabilirsiniz paylaşılan önbellek olarak ayarlamadan yalnızca uygulamanızın içinde geçerlidir.

İlişkilendirmeler

Çoğu durumda, yer fotoğrafları atıf yapılmadan kullanılabilir veya gerekli atıfın eklenmesi gerekir. Ancak, döndürülen GMSPlacePhotoMetadata örneği bir atıf içeriyorsa, uygulamanızda bunu belirtebilirsiniz. ilişkilendirmeye dokunulabilir olmalıdır. Atıflar ile ilgili belgeleri inceleyin.

Kullanım sınırları

Bir resim almak için kotanın maliyeti bir birimdir; için kullanım sınırı yok. almanın farklı yolları vardır. Daha fazla bilgi: kullanım ve faturalandırma hakkında daha fazla bilgi edinin.