Migrer vers Place Details (nouveau)

Le SDK Places pour iOS est compatible avec Place Details. Si vous connaissez le SDK Places pour iOS existant, nouvelle version de Place Details apporte les modifications suivantes:

  • Utilise un nouveau modèle de tarification. Pour obtenir des informations sur les tarifs de toutes les API, consultez Tarifs du SDK Places pour iOS (nouveau)

  • Le masquage du champ est obligatoire. Vous devez spécifier les champs à renvoyer dans la réponse. Il n'existe pas de liste par défaut des champs renvoyés. Si vous omettez de cette liste, les méthodes renvoient une erreur.

  • Pour envoyer une requête, appelez la nouvelle méthode GMSPlacesClient fetchPlaceWithRequest: .

  • Transmettez à la requête:

    • Une instance de la nouvelle classe GMSFetchPlaceRequest qui définit tous les paramètres de requête, tels que l'ID de lieu et un jeton de session unique.

    • Rappel de type GMSPlaceResultCallback pour gérer la réponse.

  • La réponse contient GMSPlace contenant des détails sur le lieu. Les valeurs du types de l'instance GMSPlace sont désormais définies par Tableau A et Tableau B.

  • L'instance GMSPlace de réponse contient le nouveau reviews de type GMSPlaceReview. Lorsque votre application affiche les informations obtenues via GMSPlace (photos et avis, par exemple), l'application doit également afficher Attributions.

    Pour en savoir plus, consultez la documentation attributions.

  • L'instance GMSPlace de réponse contient les fonctions membres suivantes:

    • isOpen détermine si un lieu est ouvert à l'heure donnée.

    • isOpenAtDate calcule si un lieu est ouvert à une date donnée.

    Ces fonctions ne sont disponibles que lorsque vous activez SDK Places pour iOS : Ils ne sont pas disponibles lorsque vous activer le SDK Places pour iOS (nouveau) ; Pour plus d'informations, consultez la section Choisir votre version du SDK.

Exemple de requête

Avec Place Details (New), vous envoyez une requête transmettez tous les paramètres dans l'instance GMSFetchPlaceRequest. Ce L'exemple utilise également un masque de champ pour que la réponse n'inclue que le nom à afficher et l'URL du site Web du lieu:

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