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.
- Demander l'autorisation d'accéder à la position
- Limites d'utilisation
- Obtenir la position actuelle
- 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:
- Ajoutez la clé
NSLocationAlwaysUsageDescription
à votre fichierInfo.plist
. - Appelez
requestAlwaysAuthorization
sur n'importe quelle instance deCLLocationManager
. 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.