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:
[GMSPlacesClient fetchPlaceFromPlaceId]
numaralı telefonu arayın, bir dize iletildiğinden emin olun. Bu işlem, geri çağırmayı sağlar birGMSPlacePhotoMetadataList
ile nesnesini tanımlayın.GMSPlacePhotoMetadataList
results
nesne erişimi özellik ve diziden yüklenecek fotoğrafları seçin.- 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.