Ce produit ou cette fonctionnalité est obsolète. Pour en savoir plus sur l'état "Ancien", consultez Anciens produits et fonctionnalités. Pour migrer vers l'API Places pour iOS(nouvelle), consultez le guide de migration.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez utiliser le SDK Places pour iOS afin de demander des photos de lieux à afficher dans votre application. Les photos renvoyées par le service Photos proviennent de plusieurs sources : elles peuvent être fournies par des propriétaires d'établissement ou par des utilisateurs. Pour récupérer des photos d'un lieu, vous devez procéder comme suit :
L'exemple de méthode suivant accepte un ID de lieu et obtient la première photo de la liste renvoyée. Vous pouvez utiliser cette méthode comme modèle pour la méthode que vous allez créer dans votre propre application.
Swift
// Specify the place data types to return (in this case, just photos).letfields:GMSPlaceField=GMSPlaceField(rawValue:UInt(GMSPlaceField.photos.rawValue))!placesClient?.fetchPlace(fromPlaceID:"INSERT_PLACE_ID_HERE",placeFields:fields,sessionToken:nil,callback:{(place:GMSPlace?,error:Error?)inifleterror=error{print("An error occurred: \(error.localizedDescription)")return}ifletplace=place{// Get the metadata for the first photo in the place photo metadata list.letphotoMetadata:GMSPlacePhotoMetadata=place.photos![0]// Call loadPlacePhoto to display the bitmap and attribution.self.placesClient?.loadPlacePhoto(photoMetadata,callback:{(photo,error)->Voidinifleterror=error{// TODO: Handle the error.print("Error loading photo metadata: \(error.localizedDescription)")return}else{// Display the first image and its attributions.self.imageView?.image=photo;self.lblText?.attributedText=photoMetadata.attributions;}})}})
Objective-C
// Specify the place data types to return (in this case, just photos).GMSPlaceFieldfields=(GMSPlaceFieldPhotos);NSString*placeId=@"INSERT_PLACE_ID_HERE";[_placesClientfetchPlaceFromPlaceID:placeIdplaceFields:fieldssessionToken:nilcallback:^(GMSPlace*_Nullableplace,NSError*_Nullableerror){if(error!=nil){NSLog(@"An error occurred %@",[errorlocalizedDescription]);return;}if(place!=nil){GMSPlacePhotoMetadata*photoMetadata=[placephotos][0];[self->_placesClientloadPlacePhoto:photoMetadatacallback:^(UIImage*_Nullablephoto,NSError*_Nullableerror){if(error!=nil){NSLog(@"Error loading photo metadata: %@",[errorlocalizedDescription]);return;}else{// Display the first image and its attributions.self->imageView.image=photo;self->lblText.attributedText=photoMetadata.attributions;}}];}}];
Pour configurer le comportement de mise en cache, vous pouvez modifier le cache d'URL partagé à l'aide de [NSURLCache setSharedURLCache:] dans la méthode application:didFinishLaunchingWithOptions: du délégué de votre application.
Si vous ne souhaitez pas que votre application partage un NSURLCache avec le SDK Places pour iOS, vous pouvez créer un NSURLCache et l'utiliser exclusivement dans votre application sans le définir comme cache partagé.
Attributions
Dans la plupart des cas, les photos de lieux peuvent être utilisées sans attribution, ou contiendront déjà l'attribution. Toutefois, si l'instance GMSPlacePhotoMetadata renvoyée inclut une attribution, vous devez inclure l'attribution supplémentaire dans votre application partout où vous affichez l'image. Notez que les liens dans l'attribution doivent être cliquables. Consultez la documentation sur les attributions.
Limites d'utilisation
La récupération d'une image coûte une unité de quota. Il n'y a pas de limite d'utilisation pour la récupération des métadonnées de photos. En savoir plus sur l'utilisation et la facturation
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/31 (UTC).
[null,null,["Dernière mise à jour le 2025/08/31 (UTC)."],[],[],null,["# Place Photos\n\nYou can use the Places SDK for iOS to request place photos to display in\nyour application. Photos returned by the photos service come from a variety of\nsources, including business owners and user-contributed photos. To retrieve\nphotos for a place, you must take the following steps:\n\n1. Call [`[GMSPlacesClient\n fetchPlaceFromPlaceId]`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient#-fetchplacefromplaceid:placefields:sessiontoken:callback:), passing a string with a place ID and a callback. This will call the callback with a [`GMSPlacePhotoMetadataList`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacePhotoMetadataList) object.\n2. On the [`GMSPlacePhotoMetadataList`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacePhotoMetadataList) object access the [`results`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacePhotoMetadataList#results) property and select the photos to load from the array.\n3. For each [`GMSPlacePhotoMetadata`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacePhotoMetadata) to load from this list call [`[GMSPlacesClient\n loadPlacePhoto:callback:]`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient#-loadplacephoto:callback:) or [`[GMSPlacesClient\n loadPlacePhoto:constrainedToSize:scale:callback:]`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient#-loadplacephoto:constrainedtosize:scale:callback:). These will call the callback with a usable UIImage. Photos can have a maximum width or height of 1600 pixels.\n\n| **Note:** Whenever you display a place photo, make sure to follow the attribution guidelines. See [Attributions](#attributions) for more information.\n\nSample code\n-----------\n\nThe following example method takes a place ID and gets the first photo in the\nreturned list. You can use this method as a template for the method you will\ncreate in your own app. \n\n### Swift\n\n```swift\n// Specify the place data types to return (in this case, just photos).\nlet fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.photos.rawValue))!\n\nplacesClient?.fetchPlace(fromPlaceID: \"INSERT_PLACE_ID_HERE\",\n placeFields: fields,\n sessionToken: nil, callback: {\n (place: GMSPlace?, error: Error?) in\n if let error = error {\n print(\"An error occurred: \\(error.localizedDescription)\")\n return\n }\n if let place = place {\n // Get the metadata for the first photo in the place photo metadata list.\n let photoMetadata: GMSPlacePhotoMetadata = place.photos![0]\n\n // Call loadPlacePhoto to display the bitmap and attribution.\n self.placesClient?.loadPlacePhoto(photoMetadata, callback: { (photo, error) -\u003e Void in\n if let error = error {\n // TODO: Handle the error.\n print(\"Error loading photo metadata: \\(error.localizedDescription)\")\n return\n } else {\n // Display the first image and its attributions.\n self.imageView?.image = photo;\n self.lblText?.attributedText = photoMetadata.attributions;\n }\n })\n }\n})\n```\n\n### Objective-C\n\n```objective-c\n// Specify the place data types to return (in this case, just photos).\nGMSPlaceField fields = (GMSPlaceFieldPhotos);\n\nNSString *placeId = @\"INSERT_PLACE_ID_HERE\";\n\n[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {\n if (error != nil) {\n NSLog(@\"An error occurred %@\", [error localizedDescription]);\n return;\n }\n if (place != nil) {\n GMSPlacePhotoMetadata *photoMetadata = [place photos][0];\n [self-\u003e_placesClient loadPlacePhoto:photoMetadata callback:^(UIImage * _Nullable photo, NSError * _Nullable error) {\n if (error != nil) {\n NSLog(@\"Error loading photo metadata: %@\", [error localizedDescription]);\n return;\n } else {\n // Display the first image and its attributions.\n self-\u003eimageView.image = photo;\n self-\u003elblText.attributedText = photoMetadata.attributions;\n }\n }];\n }\n}];\n```\n\nCaching\n-------\n\nPhotos loaded using [`[GMSPlacesClient loadPlacePhoto:callback:]`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient#-loadplacephoto:callback:)\nor [`[GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient#-loadplacephoto:constrainedtosize:scale:callback:)\nare cached both on disk and in-memory by the [Foundation URL loading system](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/URLLoadingSystem.html)\nin the shared [`NSURLCache`](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLCache_Class/index.html).\n\nTo configure the caching behavior you can change the shared URL cache using\n[`[NSURLCache setSharedURLCache:]`](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLCache_Class/index.html#//apple_ref/occ/clm/NSURLCache/setSharedURLCache:)\nin your application delegate's `application:didFinishLaunchingWithOptions:`\nmethod.\n\nIf you don't want your application to share a `NSURLCache` with the\nPlaces SDK for iOS you can create a new `NSURLCache` and use this\nexclusively within your app without setting it as the shared cache.\n\nAttributions\n------------\n\nIn most cases, place photos can be used without attribution, or will have the\nrequired attribution included as part of the image. However, if the returned\n[`GMSPlacePhotoMetadata`](/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacePhotoMetadata)\ninstance includes an attribution, you must include the additional attribution\nin your application wherever you display the image. Note that links in the\nattribution must be tappable. See the documentation on [attributions](/maps/documentation/places/ios-sdk/attributions).\n\nUsage limits\n------------\n\nRetrieving an image costs one unit of quota; there are no usage limits for\nretrieving photo metadata. Read more about\n[usage and billing](/maps/documentation/places/ios-sdk/usage-and-billing)."]]