Place Details

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Sélectionnez une plate-forme: Android iOS JavaScript Service Web

Le SDK Places pour iOS fournit à votre application des informations détaillées sur les lieux, y compris leur nom et leur adresse, l'emplacement géographique spécifié en tant que coordonnées de latitude/longitude, le type de lieu (par exemple, discothèque, animalerie, musée), etc. Pour accéder à ces informations pour un lieu spécifique, vous pouvez utiliser l'identifiant de lieu, un identifiant stable qui identifie un lieu de manière unique.

Détails sur le lieu

La classe GMSPlace fournit des informations sur un lieu spécifique. Vous pouvez obtenir un objet GMSPlace de différentes manières:

Champs de lieu

Lorsque vous demandez un lieu, vous devez spécifier les types de données de lieu à renvoyer. Pour ce faire, transmettez GMSPlaceField en spécifiant les types de données à renvoyer. Ce point est important, car il aura une incidence sur le coût de chaque requête. Étant donné que les résultats de données de lieu ne peuvent pas être vides, seuls les résultats de lieu contenant des données sont renvoyés (par exemple, si un lieu demandé n'a pas de photos, le champ photos ne sera pas présent dans le résultat). Vous pouvez spécifier un ou plusieurs des champs suivants:

  • GMSPlaceFieldName
  • GMSPlaceFieldPlaceID
  • GMSPlaceFieldPlusCode
  • GMSPlaceFieldBusinessStatus
  • GMSPlaceFieldCoordinate
  • GMSPlaceFieldOpeningHours
  • GMSPlaceFieldPhoneNumber
  • GMSPlaceFieldFormattedAddress
  • GMSPlaceFieldRating
  • GMSPlaceFieldPriceLevel
  • GMSPlaceFieldTypes
  • GMSPlaceFieldWebsite
  • GMSPlaceFieldViewport
  • GMSPlaceFieldAddressComponents
  • GMSPlaceFieldPhotos
  • GMSPlaceFieldUserRatingsTotal
  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor
  • GMSPlaceFieldUTCOffsetMinutes
  • GMSPlaceFieldAll

En savoir plus sur les champs de lieu. Pour en savoir plus sur la facturation des requêtes de données de lieu, consultez Utilisation et facturation.

La classe GMSPlace peut contenir les données de lieu suivantes:

  • name : nom du lieu.
  • placeID : identifiant textuel du lieu. Pour en savoir plus sur les ID de lieu, consultez le reste de cette page.
  • coordinate : emplacement géographique du lieu, spécifié sous la forme de coordonnées de latitude et de longitude.
  • businessStatus : état d'exploitation du lieu (s'il s'agit d'un établissement). Il peut contenir l'une des valeurs suivantes: GMSBusinessStatusOperational, GMSBusinessStatusClosedTemporarily, GMSBusinessStatusClosedPermanently, GMSBusinessStatusUnknown.
  • phoneNumber : numéro de téléphone au format international.
  • formattedAddress : adresse lisible de cet établissement.

    Bien souvent, cette adresse équivaut à l'adresse postale. Notez que certains pays, comme le Royaume-Uni, n'autorisent pas la distribution des vraies adresses postales en raison de restrictions de licence.

    L'adresse formatée est composée d'un ou de plusieurs composants d'adresse logiques. Par exemple, l'adresse "111 8th Avenue, New York, NY" comprend les éléments suivants : "111" (le numéro de rue), "8th Avenue" (la route), "New York" (la ville) et "NY" (l'État américain).

    N'analysez pas l'adresse formatée de manière programmatique. Utilisez plutôt les composants d'adresse individuels, que la réponse de l'API inclut en plus du champ d'adresse formaté.

  • rating : note globale du lieu, renvoyée sous la forme d'une valeur flottante comprise entre 1 et 5, basée sur l'ensemble des avis des utilisateurs.
  • openingHours : horaires d'ouverture du lieu (représentés par GMSOpeningHours). Appelez GMSOpeningHours.weekdayText pour obtenir la liste des chaînes localisées des horaires d'ouverture quotidiens pour la semaine. Appelez GMSOpeningHours.Periods pour renvoyer une liste de GMSPeriod avec des informations plus détaillées équivalentes aux données fournies par weekdayText. Remarque : Si un lieu est toujours ouvert, la période est représentée par le dimanche à minuit et la valeur closeEvent est nulle.
  • plusCode : représentation du code Plus de l'établissement.
  • priceLevel : niveau de tarification du lieu, affiché sous forme de nombre entier avec des valeurs comprises entre 0 (le moins cher) et 4 (le plus cher).
  • types : liste des types de lieu qui caractérisent ce lieu. Ce tableau peut contenir plusieurs valeurs ou être vide. De nouvelles valeurs peuvent être ajoutées sans préavis. Consultez la liste des types compatibles.
  • website : URI du site Web du lieu, s'il est connu. Site Web géré par l'établissement ou par une autre entité associée à ce lieu.
  • attributions : NSAttributedString contenant les attributions que vous devez afficher à l'utilisateur si votre application utilise des détails sur le lieu extraits du SDK Places pour iOS Pour en savoir plus sur la récupération et l'affichage des attributions, consultez le guide sur les attributions.
  • addressComponents : tableau d'objets GMSAddressComponent représentant les composants de l'adresse d'un lieu. Ces composants sont fournis dans le but d'extraire des informations structurées sur l'adresse d'un lieu, par exemple pour trouver la ville où se trouve un lieu. N'utilisez pas ces composants pour le format de l'adresse. Utilisez plutôt la propriété formattedAddress, qui fournit une adresse formatée.

    Notez les informations suivantes sur le tableau addressComponents:

    • Le tableau de composants d'adresse peut contenir plus de composants que formattedAddress.
    • Le tableau n'inclut pas nécessairement toutes les entités politiques contenant une adresse, à l'exception de celles incluses dans formattedAddress.
    • Il n'est pas garanti que le format de la réponse reste le même entre les requêtes. En particulier, le nombre de addressComponents varie selon l'adresse demandée et peut changer au fil du temps pour la même adresse. Un composant peut changer de position dans le tableau. Le type du composant peut changer. Un composant particulier peut être manquant dans une réponse ultérieure.
  • userRatingsTotal : représente le nombre d'avis constituant la note du lieu.
  • GMSPlaceFieldIconImageURL : URL d'une icône représentant le type de lieu (format PNG).
  • GMSPlaceFieldIconBackgroundColor : couleur d'arrière-plan de l'icône du type de lieu.
  • UTCOffsetMinutes : décalage horaire du lieu (en minutes).

La classe GMSPlace contient les fonctions de membre suivantes:

  • isOpen calcule si un lieu est ouvert à une heure donnée en fonction de openingHours et de UTCOffsetMinutes, ainsi que de la date et de l'heure actuelles.
  • isOpenAtDate calcule si un lieu est ouvert à une date donnée, en fonction de openingHours et de UTCOffsetMinutes, ainsi que de la date et de l'heure actuelles.
  • Lorsque vous utilisez ces fonctions pour obtenir des heures et/ou des dates d'ouverture, la requête fetchPlaceFromPlaceID: ou findPlaceLikelihoodsFromUserLocationWithPlaceFields: d'origine doit spécifier des champs GMSPlaceFieldOpeningHours et GMSPlaceFieldUTCOffsetMinutes. Si l'un de ces champs n'est pas renseigné, l'objet GMSPlace obtenu ne contiendra ni date, ni heure d'ouverture, et l'appel renverra GMSPlaceOpenStatusUnknown. Pour garantir des résultats précis, demandez les champs GMSPlaceFieldBusinessStatus et GMSPlaceFieldUTCOffsetMinutes dans votre requête de lieu d'origine. Dans le cas contraire, nous partons du principe que l'établissement est opérationnel.

    Regardez cette vidéo pour découvrir comment utiliser isOpen avec Place Details.

Obtenir un lieu par identifiant

Un ID de lieu est un identifiant texte qui identifie un lieu de façon unique. Dans le SDK Places pour iOS, vous pouvez récupérer l'ID d'un lieu à partir d'un objet GMSPlace. Vous pouvez stocker l'ID de lieu et l'utiliser pour récupérer à nouveau l'objet GMSPlace.

Pour obtenir un lieu par ID, appelez GMSPlacesClient fetchPlaceFromPlaceID: en transmettant les paramètres suivants:

  • Chaîne contenant un identifiant de lieu.
  • Un ou plusieurs GMSPlaceField, en spécifiant les types de données à renvoyer.
  • Jeton de session si l'appel est effectué pour finaliser une requête de saisie semi-automatique. Sinon, transmettez "nil".
  • Un GMSPlaceResultCallback pour gérer le résultat.

L'API appelle la méthode de rappel spécifiée en transmettant un objet GMSPlace. Si le lieu est introuvable, l'objet GMSPlace est nul.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeId, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeId = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

Afficher les mentions dans votre application

Lorsque votre application affiche des informations obtenues à partir de GMSPlacesClient lookUpPlaceID:callback:, elle doit également afficher les attributions. Consultez la documentation sur les attributions.

Informations supplémentaires sur les identifiants de lieu

L'identifiant de lieu utilisé dans le SDK Places pour iOS est le même que pour les API Places, le SDK Places pour Android et les autres API Google.

Chaque ID de lieu ne peut faire référence qu'à un seul lieu, mais un même lieu peut avoir plusieurs ID de lieu.

Dans certains cas, un nouvel identifiant peut être attribué à un lieu. Par exemple, lorsqu'un professionnel déménage.

Lorsque vous demandez un lieu en spécifiant un ID de lieu, vous pouvez être certain de toujours recevoir le même lieu en réponse (s'il existe toujours). Notez toutefois que la réponse peut contenir un ID de lieu différent de celui de votre requête.

Pour en savoir plus, consultez la présentation des ID de lieu.