Place Details (nouveau)

Sélectionnez une plate-forme : Android iOS JavaScript Services Web

Le SDK Places pour iOS (nouveau) fournit à votre application des informations détaillées sur un lieu, comme son nom et son adresse, son emplacement l'emplacement spécifié en tant que coordonnées de latitude/longitude, le type de lieu (boîte de nuit, animalerie, musée, etc.). Pour accéder à ces informations un lieu spécifique, vous pouvez utiliser l'identifiant de lieu, un identifiant stable qui identifie un lieu.

Obtenir des informations sur un lieu

La GMSPlace contient des informations sur un lieu spécifique, y compris tous les champs de données affichés dans Champs de données de lieu (nouveau). Obtenez un GMSPlace en appelant GMSPlacesClient fetchPlaceWithRequest:, en transmettant un objet GMSFetchPlaceRequest et Méthode de rappel du type GMSPlaceResultCallback.

L'objet GMSFetchPlaceRequest spécifie:

  • (Obligatoire) L'identifiant de lieu, qui est un identifiant unique d'un lieu dans Google Adresses. base de données et sur Google Maps.
  • (Obligatoire) Liste des champs à renvoyer dans l'objet GMSPlace, également appelé masque de champ, tel que défini par GMSPlaceProperty Si vous ne spécifiez pas au moins un champ dans la liste des champs ou si vous omettez la liste des champs, l'appel renvoie une erreur.
  • (Facultatif) Code régional utilisé pour mettre en forme la réponse.
  • (Facultatif) Jeton de session utilisé pour mettre fin à une session Autocomplete (New).

Envoyer une requête Places Details

Cet exemple obtient un lieu par son identifiant, en transmettant les paramètres suivants:

  • ID de lieu de ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Liste de champs indiquant de renvoyer le nom du lieu et l'URL du site Web.
  • Un GMSPlaceResultCallback pour gérer le résultat.

L'API invoque la méthode de rappel spécifiée, en transmettant une 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 myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: 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 *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties 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);
  }
}];

GooglePlacesSwift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Réponse Place Details

Place Details renvoie un Objet GMSPlace contenant des détails sur le lieu. Seuls les champs spécifiés dans la liste des champs sont renseignés dans l'objet GMSPlace.

Avec les champs de données, l'objet GMSPlace dans contient les fonctions membres suivantes:

  • isOpen calcule si un lieu est ouvert à l'heure donnée.
  • isOpenAtDate calcule si un lieu est ouvert à une date donnée.

Paramètres obligatoires

Utilisez l'objet GMSFetchPlaceRequest pour spécifier les paramètres requis.

ID de lieu

L'identifiant de lieu utilisé dans le SDK Places pour iOS est le Même identifiant que celui utilisé dans l'API Places, le SDK Places pour Android et d'autres API Google. Chaque identifiant de lieu ne peut faire référence qu'à un seul lieu, mais un seul peut en contenir plusieurs. plusieurs ID de lieu.

Dans certains cas, un lieu peut recevoir un nouvel ID de lieu. Par exemple, lorsqu'un professionnel déménage.

Lorsque vous demandez un lieu en spécifiant un ID de lieu, vous êtes sûr que vous recevrez toujours la même réponse au même endroit (si le lieu est toujours . Notez toutefois que la réponse peut contenir un ID de lieu différente de celle de votre demande.

Liste des champs

Lorsque vous demandez des détails sur un lieu, vous devez spécifier les données pour affichée dans l'objet GMSPlace du lieu en tant que masque de champ. Pour définir le masque de champ transmettre un tableau de valeurs GMSPlaceProperty à l'objet GMSFetchPlaceRequest. Le masquage du champ est une bonne pratique de conception afin de vous assurer que vous ne demandez pas de données inutiles, ce qui permet d'éviter des délais de traitement et des frais de facturation inutiles.

Renseignez un ou plusieurs des champs suivants:

  • Les champs suivants déclenchent le SKU Place Details (ID Only):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Les champs suivants déclenchent le SKU Place Details (Location Only):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Les champs suivants déclenchent le SKU Place Details (Basic):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Les champs suivants déclenchent le SKU Place Details (Advanced):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Les champs suivants déclenchent le SKU Place Details (Preferred):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout.

L'exemple suivant transmet une liste de valeurs des champs pour spécifier que l'objet GMSPlace renvoyé par une requête contient le Champs name et placeID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

GooglePlacesSwift

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Paramètres facultatifs

Utilisez l'objet GMSFetchPlaceRequest pour spécifier les paramètres facultatifs.

regionCode

Code régional utilisé pour mettre en forme la réponse, spécifié sous la forme d'une CLDR à deux caractères. Ce paramètre peut également avoir un effet de biais dans les résultats de recherche. Il n'existe pas de valeur par défaut.

Si le nom de pays du champ d'adresse dans la réponse correspond au code de région, le code pays est omis de l'adresse.

La plupart des codes CLDR sont identiques aux codes ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD au Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb". (d'un point de vue technique, du Royaume-Uni de Grande-Bretagne et d'Irlande du Nord). Ce paramètre peut avoir un impact sur les résultats en fonction de la législation applicable.

sessionToken

Les jetons de session sont des chaînes générées par l'utilisateur qui suivent la saisie semi-automatique (Nouveau) les appels en tant que "sessions". La saisie semi-automatique (nouveau) utilise des jetons de session pour regrouper les phases de requête et de sélection de lieux d'une recherche avec saisie semi-automatique d'un utilisateur dans une session distincte ; à des fins de facturation. Les jetons de session sont transmis à Place Details (nouveau) qui suivent les appels de saisie semi-automatique (nouveau). Pour en savoir plus, consultez Jetons de session :

Afficher les mentions dans votre application

Lorsque votre application affiche des informations obtenues GMSPlacesClient, telles que des photos et des avis, l'application doit également afficher les mentions requises.

Par exemple, la propriété reviews de l'objet GMSPlacesClient contient un tableau comportant jusqu'à cinq GMSPlaceReview d'objets. Chaque objet GMSPlaceReview peut contenir des attributions et des attributions d'auteurs. Si vous affichez l'avis dans votre application, vous devez également mentionner la paternité ou l'auteur l'attribution.

Pour en savoir plus, consultez la documentation attributions.