Yer Fotoğrafları (Yeni)

Platform seçin: Android iOS Web Hizmeti

iOS için Yerler SDK'sını (Yeni) kullanarak yer fotoğrafları için istekte bulunabilirsiniz. uygulamanızda gösterilecek. Fotoğraflar hizmeti tarafından döndürülen fotoğraflar İşletme sahipleri ve kullanıcıların gönderdiği fotoğraflar da dahil olmak üzere çeşitli kaynaklar.

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:

  1. Telefonla arama [GMSPlacesClient lookUpPhotosForPlaceID], yer kimliği ve GMSPlacePhotoMetadataResultCallback geri arama. Bu istek, GMSPlacePhotoMetadataResultCallback ile geri çağırmayı GMSPlacePhotoMetadataList nesnesini tanımlayın.

  2. Geri çağırmadaki GMSPlacePhotoMetadataList nesnesinden, results dizi özelliği, fotoğrafları içerir ve her fotoğrafın bir GMSPlacePhotoMetadata nesnesini tanımlayın.

  3. Oluşturmak için GMSPlacePhotoMetadata nesnesini kullanın GMSFetchPhotoRequest istenen resmin maksimum boyutu dahil

  4. Dizideki her GMSPlacePhotoMetadata nesnesi için şu çağrıyı yapın: [GMSPlacesClient fetchPhotoWithRequest:callback:] GMSFetchPhotoRequest nesnesini geçiriyorum. Bu yöntem GMSFetchPhotoResultCallback 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 diğer bir yolu da Yer Ayrıntıları (Yeni) isteği, GMSPlacePropertyPhotos dahil. 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
    }
  }];
}];

GooglePlacesSwift

// 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

Ç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 ö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.