Przenieś do zdjęcia miejsca (nowość)

Pakiet SDK Miejsc na iOS obsługuje zdjęcia miejsc (starsza wersja). Jeśli znasz interfejs Place Photo (Legacy), Place Photo (New) wprowadza te zmiany:

  • Korzysta z nowego modelu cenowego. Informacje o cenach wszystkich interfejsów API znajdziesz w artykule Ceny pakietu Places SDK na iOS (nowego).

  • Zdjęcie miejsca (starsza wersja) obsługiwało maksymalny rozmiar zdjęcia 1600 × 1600 pikseli. Zdjęcie miejsca (nowe) obsługuje rozmiary do 4800 x 4800 pikseli.

  • Aby wysłać prośbę, wywołaj nową metodę GMSPlacesClient fetchPhotoWithRequest:callback:.

  • Przekaż do żądania:

  • Każde zdjęcie jest reprezentowane przez instancję GMSPlacePhotoMetadata. W przypadku pakietu SDK Miejsc na iOS (nowego) instancja GMSPlacePhotoMetadata zawiera nowe pole authorAttribution reprezentowane przez nową klasę GMSPlaceAuthorAttribution.

    Jeśli zwrócona instancja GMSPlacePhotoMetadata zawiera attributions lub authorAttribution, musisz umieścić te atrybucje w aplikacji wszędzie tam, gdzie wyświetlasz obraz. Więcej informacji znajdziesz w dokumentacji dotyczącej atrybucji.

Przykładowe żądanie

Poniższa przykładowa metoda pobiera identyfikator miejsca i uzyskuje pierwsze zdjęcie na liście zwróconej przez interfejs API. Możesz użyć tej metody jako szablonu metody, którą utworzysz we własnej aplikacji.

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