Uygulamanızda gösterilecek yer fotoğrafları istemek için iOS için Yerler SDK'sını (Yeni) kullanabilirsiniz. Fotoğraflar hizmeti tarafından döndürülen fotoğraflar, işletme sahipleri ve kullanıcılar tarafından eklenen fotoğraflar da dahil olmak üzere çeşitli kaynaklardan gelir.
Fotoğraflar birer UIImage nesnesini tanımlayın. Bir bit eşlem resminin maksimum boyutu 4.800 x 4.800 pikseldir.
Resim iste
Bir yer için 10 adede kadar fotoğraf isteyebilirsiniz:
Telefonla arama
[GMSPlacesClient lookUpPhotosForPlaceID]
yer kimliği veGMSPlacePhotoMetadataResultCallback
geri arama. Bu istek,GMSPlacePhotoMetadataResultCallback
ile geri çağırmayıGMSPlacePhotoMetadataList
nesnesini tanımlayın.Geri çağırmadaki
GMSPlacePhotoMetadataList
nesnesinden,results
dizi özelliği, fotoğrafları içerir ve her fotoğrafın birGMSPlacePhotoMetadata
nesnesini tanımlayın.Oluşturmak için
GMSPlacePhotoMetadata
nesnesini kullanınGMSFetchPhotoRequest
, istenen resmin maksimum boyutu dahilDizideki her
GMSPlacePhotoMetadata
nesnesi için şu çağrıyı yapın:[GMSPlacesClient fetchPhotoWithRequest:callback:]
GMSFetchPhotoRequest
nesnesini geçiriyorum. Bu yöntemGMSFetchPhotoResultCallback
UIImage olarak kullanılabilir bir bit eşlem resmi ile geri çağırmak için kullanılır.
Bir yer için fotoğraf istemenin bir başka yolu da alan listesine GMSPlacePropertyPhotos
ekleyerek Yer Ayrıntıları (Yeni) isteği göndermektir. Bir anahtar kelime eklemenin
Yer Ayrıntısı çağrısı ise
GMSPlace
nesne, fotoğraf ve istediğiniz diğer veri alanlarını içerebilir
yeri görebilirsiniz.
Ö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
// 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 } }]; }];
iOS için Yerler Swift SDK'sı (Önizleme)
// First fetch place details // A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [ . name, .website ] ) var fetchedPlace: Place switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): fetchedPlace = place case .failure(let placesError): // Handle error } // Use the place details to fetch a photo's image. guard let photo = fetchedPlace.photos?.first else { // Handle place without photos. } let fetchPhotoRequest = FetchPhotoRequest(photo: photo, maxSize: CGSizeMake(4800, 4800)) switch await placesClient.fetchPhoto(with: fetchPhotoRequest) { case .success(let uiImage): // Handle image. case .failure(let placesError): // Handle error }
Ö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
Yer fotoğrafları çoğu durumda ilişkilendirme olmadan kullanılabilir veya gerekli ilişkilendirme, resmin bir parçası olarak eklenir. Ancak, döndürülen
GMSPlacePhotoMetadata
örnek, herhangi bir
attributions
veya
authorAttribution
,
göstereceğiniz her yerde bu atıfları uygulamanıza eklemelisiniz.
görüntüsüdür. Dokümanları görüntüleyin:
ilişkilendirmeler.