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.

Obtenir l'état d'ouverture

L'objet GMSPlacesClient contient une fonction membre appelée isOpenWithRequest (isOpenRequest en Swift et isPlaceOpenRequest dans GooglePlacesSwift) qui renvoie une réponse indiquant si le lieu est actuellement ouvert, en fonction de l'heure spécifiée dans l'appel.

Cette méthode utilise un seul argument de type GMSPlaceIsOpenWithRequest qui contient:

  • Un objet GMSPlace ou une chaîne spécifiant un ID de lieu. Pour en savoir plus sur la création de l'objet Place avec les champs nécessaires, consultez Informations sur le lieu.
  • Objet facultatif NSDate (Obj-C) ou Date (Swift) spécifiant l'heure à laquelle vous souhaitez vérifier. Si aucune heure n'est spécifiée, la valeur par défaut est "now".
  • Une méthode GMSPlaceOpenStatusResponseCallback pour gérer la réponse.

La méthode GMSPlaceIsOpenWithRequest nécessite que les champs suivants soient définis dans l'objet GMSPlace:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Si ces champs ne sont pas fournis dans l'objet Place ou si vous transmettez un ID de lieu, la méthode les récupère à l'aide de GMSPlacesClient GMSFetchPlaceRequest:.

isOpenWithRequest réponse

isOpenWithRequest renvoie un objet GMSPlaceIsOpenResponse contenant une valeur booléenne nommée status qui indique si l'établissement est ouvert ou fermé, ou si l'état est inconnu.

Langue Valeur si ouverte Valeur en cas de fermeture Valeur si état inconnu
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (Preview) true false nil

Facturation pour isOpenWithRequest

  • Les champs GMSPlacePropertyUTCOffsetMinutes et GMSPlacePropertyBusinessStatus sont facturés sous le SKU Basic Data. Les autres horaires d'ouverture sont facturés sous le SKU Place Details (Advanced).
  • Si votre objet GMSPlace contient déjà ces champs provenant d'une requête précédente, vous ne serez plus facturé.

Exemple: Envoyer une requête GMSPlaceIsOpenWithRequest

L'exemple suivant montre comment initialiser un GMSPlaceIsOpenWithRequest dans un objet GMSPlace existant.

Swift

  let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
    GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
      if let error = error {
        // Handle Error
      }
      switch response.status {
        case .open:
          // Handle open
        case .closed:
          // Handle closed
        case .unknown:
          // Handle unknown
      }
    }
      

Objective-C

        GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

        [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
          if (error) {
            // Handle error
          }

          switch (response.status) {
            case GMSPlaceOpenStatusOpen:
              // Handle open
            case GMSPlaceOpenStatusClosed:
              // Handle closed
            case GMSPlaceOpenStatusUnknown:
              // Handle unknown
          }
        }];
        

GooglePlacesSwift

        let isOpenRequest = IsPlaceOpenRequest(place: place)
        switch await placesClient.isPlaceOpen(with: isOpenRequest) {
          case .success(let isOpenResponse):
            switch isOpenResponse.status {
              case true:
                // Handle open
              case false:
                // Handle closed
              case nil:
                // Handle unknown
          case .failure(let placesError):
            // Handle error
        }
        

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 aussi 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 du droit 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.