Places SDK for iOS supports the existing Place Photo. If you are familiar with the existing Place Photo, the new version of Place Photo makes the following changes:
Uses a new pricing model. For pricing information for all APIs, see Pricing for the Places SDK for iOS (New).
The existing Place Photo supported a maximum photo size of 1600 by 1600 pixels. Place Photo (New) supports sizes up to 4800 by 4800 pixels.
To make a request, call the new
GMSPlacesClient fetchPhotoWithRequest:callback:
method.Pass to the request:
An instance of the new
GMSFetchPhotoRequest
class that defines all request parameters, including the max image size.A callback of type
GMSPlacePhotoMetadataResultCallback
to handle the response.
Each photo is represented by a
GMSPlacePhotoMetadata
instance. For Places SDK for iOS (New) theGMSPlacePhotoMetadata
instance contains a newauthorAttribution
field represented by the newGMSPlaceAuthorAttribution
class.If the returned
GMSPlacePhotoMetadata
instance includesattributions
orauthorAttribution
, you must include these attributions in your application wherever you display the image. See the documentation on attributions.
Example request
The following example method takes a place ID and gets the first photo in the returned list. You can use this method as a template for the method you will create in your own app.
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 } }]; }];