Миграция для размещения фотографии (новая версия)

Places SDK для iOS поддерживает существующую фотографию места . Если вы знакомы с существующей фотографией места, новая версия фотографии места вносит следующие изменения:

  • Использует новую модель ценообразования. Информацию о ценах на все API см. в разделе Цены на Places SDK для iOS (новая версия) .

  • Существующая фотография места поддерживала максимальный размер фотографии 1600 на 1600 пикселей. Place Photo (новое) поддерживает размеры до 4800 на 4800 пикселей.

  • Чтобы сделать запрос, вызовите новый GMSPlacesClient fetchPhotoWithRequest:callback:

  • Переходим к запросу:

    • Экземпляр нового класса GMSFetchPhotoRequest , который определяет все параметры запроса, включая максимальный размер изображения.

    • Обратный вызов типа GMSPlacePhotoMetadataResultCallback для обработки ответа.

  • Каждая фотография представлена ​​экземпляром GMSPlacePhotoMetadata . Для Places SDK для iOS (новинка) экземпляр GMSPlacePhotoMetadata содержит новое authorAttribution , представленное новым классом GMSPlaceAuthorAttribution .

    Если возвращенный экземпляр GMSPlacePhotoMetadata включает attributions authorAttribution , вы должны включить эти атрибуции в свое приложение, где бы вы ни отображали изображение. См. документацию по атрибуции .

Пример запроса

Следующий пример метода принимает идентификатор места и получает первую фотографию в возвращаемом списке. Вы можете использовать этот метод в качестве шаблона для метода, который вы создадите в своем собственном приложении.

Быстрый

// 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: ")
    }
  )
}

Цель-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
    }
  }];
}];