Uygulamanızda gösterilecek yer fotoğrafları istemek için iOS için Yerler SDK'sını (Yeni) kullanabilirsiniz. Fotoğraf hizmeti tarafından döndürülen fotoğraflar, işletme sahipleri ve kullanıcı tarafından gönderilen fotoğraflar da dahil olmak üzere çeşitli kaynaklardan gelir.
Fotoğraflar, UIImage nesnesiyle temsil edilen bit eşlem resimlerdir. Bir bit eşlem resmi en fazla 4.800 x 4.800 piksel boyutunda olabilir.
Resim isteğinde bulunma
Bir yer için en fazla 10 fotoğraf isteğinde bulunabilirsiniz:
Yer kimliği ve
GMSPlacePhotoMetadataResultCallback
geri çağırma işlevi ileterek Call[GMSPlacesClient lookUpPhotosForPlaceID]
'ı çağırın. Bu istek,GMSPlacePhotoMetadataList
nesnesiyleGMSPlacePhotoMetadataResultCallback
geri çağırma işlevini çağırır.Geri çağırmadaki
GMSPlacePhotoMetadataList
nesnesinden,results
dizi özelliği fotoğrafları içerir. Her fotoğraf birGMSPlacePhotoMetadata
nesnesiyle temsil edilir.İstenen resmin maksimum boyutu da dahil olmak üzere
GMSFetchPhotoRequest
oluşturmak içinGMSPlacePhotoMetadata
nesnesini kullanın.Dizideki her
GMSPlacePhotoMetadata
nesnesi için[GMSPlacesClient fetchPhotoWithRequest:callback:]
'ı çağırın veGMSFetchPhotoRequest
nesnesini iletin. Bu yöntem, UIImage olarak kullanılabilir bir bit eşlem resmiyleGMSFetchPhotoResultCallback
geri çağırmasını çağırır.
Bir yer için fotoğraf istemenin başka bir yolu da alan listesine GMSPlacePropertyPhotos
dahil ederek Yer Ayrıntıları (Yeni) isteğinde bulunmaktır. Yer Ayrıntıları çağrısı yapmanın avantajı, yanıt GMSPlace
nesnesinin, yer için istediğiniz fotoğrafları ve diğer tüm veri alanlarını içerebilmesidir.
Örnek kod
Aşağıdaki örnek yöntem, bir yer kimliği alır ve döndürülen listedeki ilk fotoğrafı elde eder. Bu yöntemi, kendi uygulamanızda oluşturacağınız yöntem için şablon olarak kullanabilirsiniz.
Places Swift SDK'sı
// 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 }
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 } }]; }];
Önbelleğe alma
[GMSPlacesClient loadPlacePhoto:callback:]
veya [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]
kullanılarak yüklenen fotoğraflar, paylaşılan NSURLCache
'daki Foundation 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 [NSURLCache setSharedURLCache:]
application:didFinishLaunchingWithOptions:
yöntemini kullanarak paylaşılan URL önbelleğini değiştirebilirsiniz.
Uygulamanızın iOS için Places SDK ile 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ıfta bulunulmadan kullanılabilir veya gerekli atıf, resmin bir parçası olarak eklenir. Ancak döndürülen
GMSPlacePhotoMetadata
örneği herhangi bir
attributions
veya
authorAttribution
içeriyorsa
bu ilişkilendirmeleri, resmi gösterdiğiniz her yerde uygulamanıza eklemeniz gerekir. İlişkilendirmeler ile ilgili dokümanları inceleyin.