Migrate to Place Details (New)

Places SDK for iOS supports Place Details (Legacy) . If you are familiar with Places SDK for iOS (Legacy), Place Details (New) makes the following changes:

  • Uses a new pricing model. For pricing information for all APIs, see Pricing for the Places SDK for iOS (New) .

  • Field masking is required. You must specify which fields you want returned in the response. There is no default list of returned fields. If you omit this list, the methods return an error.

  • To make a request, call the new GMSPlacesClient fetchPlaceWithRequest: method.

  • Pass to the request:

  • The response contains a GMSPlace instance containing details about the place. The values in the types property of the GMSPlace instance are now defined by Table A and Table B .

  • The response GMSPlace instance contains the new reviews property of type GMSPlaceReview . When your app displays information obtained from the GMSPlace instance, such as photos and reviews, the app must also display the required attributions.

    For more information, see the documentation on attributions .

  • The response GMSPlace instance contains the following member functions:

    • isOpen calculates whether a place is open at the given time.

    • isOpenAtDate calculates whether a place is open on a given date.

    These functions are only available when you enable Places SDK for iOS. They are not available when you enable Places SDK for iOS (New). For more information, see Choose your SDK version .

Example request

With Place Details (New), you make a request and pass all parameters in the GMSFetchPlaceRequest instance. This example also uses a field mask so the response only includes the display name and website URL for the place:

Swift

 // A hotel in Saigon with an attribution. 
 let 
  
 placeID 
  
 = 
  
 "ChIJV4k8_9UodTERU5KXbkYpSYs" 
 // Specify the place data types to return. 
 let 
  
 fields 
  
 = 
  
 [ 
 GMSPlaceProperty 
 . 
 name 
 , 
  
 GMSPlaceProperty 
 . 
 website 
 ]. 
 map 
  
 { 
 $0 
 . 
 rawValue 
 } 
 // Create the GMSFetchPlaceRequest instance. 
 let 
  
 fetchPlaceRequest 
  
 = 
  
 GMSFetchPlaceRequest 
 ( 
 placeID 
 : 
  
 placeID 
 , 
  
 placeProperties 
 : 
  
 fields 
 , 
  
 sessionToken 
 : 
  
 nil 
 ) 
 client 
 . 
 fetchPlaceWithRequest 
 ( 
 fetchPlaceRequest 
 : 
  
 fetchPlaceRequest 
 , 
  
 callback 
 : 
  
 { 
  
 ( 
 place 
 : 
  
 GMSPlace 
 ?, 
  
 error 
 : 
  
 Error 
 ?) 
  
 in 
  
 guard 
  
 let 
  
 place 
 , 
  
 error 
  
 == 
  
 nil 
  
 else 
  
 { 
  
 return 
  
 } 
  
 print 
 ( 
 "Place found: 
 \( 
 String 
 ( 
 describing 
 : 
  
 place 
 . 
 name 
 )) 
 " 
 ) 
 }) 

Objective-C

 // A hotel in Saigon with an attribution. 
 NSString 
  
 * 
 placeID 
  
 = 
  
 @"ChIJV4k8_9UodTERU5KXbkYpSYs" 
 ; 
 // Specify the place data types to return. 
 NSArray<NSString 
  
 * 
>  
 * 
 fields 
  
 = 
  
 @[ 
 GMSPlacePropertyName 
 , 
  
 GMSPlacePropertyWebsite 
 ] 
 ; 
 // Create the GMSFetchPlaceRequest instance. 
 GMSFetchPlaceRequest 
  
 * 
 fetchPlaceRequest 
  
 = 
  
 [[ 
 GMSFetchPlaceRequest 
  
 alloc 
 ] 
  
 initWithPlaceID 
 : 
 placeID 
  
 placeProperties 
 : 
  
 fields 
  
 sessionToken 
 : 
 nil 
 ]; 
 [ 
 placesClient 
  
 fetchPlaceWithRequest 
 : 
  
 fetchPlaceRequest 
  
 callback 
 : 
  
 ^ 
 ( 
 GMSPlace 
  
 * 
 _Nullable 
  
 place 
 , 
  
 NSError 
  
 * 
 _Nullable 
  
 error 
 ) 
  
 { 
  
 if 
  
 ( 
 error 
  
 != 
  
 nil 
 ) 
  
 { 
  
 NSLog 
 ( 
 @"An error occurred %@" 
 , 
  
 [ 
 error 
  
 localizedDescription 
 ]); 
  
 return 
 ; 
  
 } 
  
 else 
  
 { 
  
 NSLog 
 ( 
 @"Place Found: %@" 
 , 
  
 place 
 . 
 name 
 ); 
  
 NSLog 
 ( 
 @"The place URL: %@" 
 , 
  
 place 
 . 
 website 
 ); 
  
 } 
 }]; 
Create a Mobile Website
View Site in Mobile | Classic
Share by: