Current Place

Sélectionnez une plate-forme : Android iOS

Grâce au SDK Places pour iOS, vous pouvez découvrir où se trouve appareil est actuellement localisé. C'est-à-dire l'endroit où se trouve position indiquée. Exemples de lieux : établissements locaux, des points d'intérêt et des emplacements géographiques.

  1. Demander l'autorisation d'accéder à la position
  2. Limites d'utilisation
  3. Obtenir la position actuelle
  4. Afficher les attributions dans votre application

Demande d'autorisation d'accéder à la position...

Si votre application utilise GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, votre application doit demander l'autorisation d'utiliser les services de localisation. Ajoutez le Clé NSLocationWhenInUseUsageDescription à votre Info.plist pour définir la chaîne indiquant à l'utilisateur pourquoi vous avez besoin de l'emplacement services. Exemple :

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

Si vous souhaitez appeler findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: lorsque l'application est exécutée en arrière-plan, sans afficher de boîte de dialogue de confirmation, procédez comme suit avant d'effectuer l'appel:

  1. Ajoutez la clé NSLocationAlwaysUsageDescription à votre fichier Info.plist.
  2. Appelez requestAlwaysAuthorization sur n'importe quelle instance de CLLocationManager. avant d'appeler la méthode.

Demandez l'autorisation à CLLocationManager comme suit:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Obtenir la position actuelle

Pour trouver l'établissement local ou tout autre lieu où se trouve actuellement l'appareil localisé, appeler GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: Inclure les paramètres suivants:

  • Une ou plusieurs valeurs GMSPlaceField, spécifiant les types de données à renvoyer. Si vous omettez ce paramètre, TOUS les champs possibles seront renvoyés et vous serez facturé en conséquence. Cela ne s'applique qu'aux requêtes Place Details.
  • Une méthode de rappel pour gérer les résultats.

Les champs correspondent aux résultats Place Search et sont divisés en trois catégories de facturation: Basic, Contact et Atmosphere. Les champs Basic sont facturés au tarif de base et n'entraînent frais. Les champs Contact et Atmosphere sont facturés à un tarif plus élevé. Pour plus d'informations sur la facturation des requêtes de données de lieu, consultez Utilisation et facturation :

L'API invoque la méthode de rappel spécifiée, en renvoyant un tableau de GMSPlaceLikelihood d'objets.

Chaque GMSPlaceLikelihood représente un lieu. Pour chaque lieu, le résultat inclut une indique la probabilité que le lieu soit le bon. Une valeur plus élevée signifie plus de probabilité que le lieu corresponde le mieux à vos attentes. Le tampon peut être vide s'il n'existe aucun lieu connu correspondant à la position de l'appareil.

L'exemple de code suivant récupère la liste des emplacements où l'appareil est les plus susceptibles de se trouver, et enregistre le nom et la probabilité de chaque lieu.

Swift

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
                                          UInt(GMSPlaceField.placeID.rawValue))!
placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: {
  (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }

  if let placeLikelihoodList = placeLikelihoodList {
    for likelihood in placeLikelihoodList {
      let place = likelihood.place
      print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)")
      print("Current PlaceID \(String(describing: place.placeID))")
    }
  }
})

Objective-C

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
[_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (likelihoods != nil) {
    for (GMSPlaceLikelihood *likelihood in likelihoods) {
      GMSPlace *place = likelihood.place;
      NSLog(@"Current place name: %@", place.name);
      NSLog(@"Place ID: %@", place.placeID);
    }
  }
}];

Remarques à propos des valeurs de probabilité :

  • La probabilité fournit une probabilité relative du lieu correspondant le mieux à la liste des lieux renvoyés pour une demande simple. Vous ne pouvez pas comparer les probabilités de différentes requêtes.
  • La valeur de probabilité est comprise entre 0 et 1.0.
  • La somme des probabilités dans un tableau renvoyé de GMSPlaceLikelihood est toujours inférieure ou égale à 1.0. Notez que la somme n'est pas nécessairement 1.0.

Par exemple, pour représenter une probabilité de 55% que le lieu correct soit le lieu A, et avec une probabilité de 35% pour le lieu B, le tableau de probabilité a deux membres: Placez A avec une probabilité de 0,55 et Lieu B avec une probabilité de 0,35.

Afficher les attributions dans votre application

Lorsque votre application affiche des informations obtenues GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, l'application doivent également afficher les mentions. En savoir plus sur attributions.