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

Places SDK для iOS поддерживает Place Photo (устаревшую версию) . Если вы знакомы с Place Photo (устаревшую версию), Place Photo (новая версия) вносит следующие изменения:

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

  • Place Photo (устаревшая версия) поддерживала максимальный размер фотографий 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: ")
    }
  )
}

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
    }
  }];
}];