Mit dem Places SDK for iOS können Sie den Ort ermitteln, an dem sich das Gerät derzeit befindet. Das ist der Ort am derzeit gemeldeten Standort des Geräts. Beispiele für Orte sind lokale Unternehmen, POIs und geografische Standorte.
- Standortautorisierung anfordern
- Nutzungslimits
- Aktuellen Standort abrufen
- Quellenangaben in Ihrer App anzeigen
Standortautorisierung anfordern
Wenn deine App
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
verwendet, muss sie die Berechtigung anfordern, Standortdienste zu verwenden. Fügen Sie der Datei Info.plist
den Schlüssel NSLocationWhenInUseUsageDescription
hinzu, um den String zu definieren, in dem der Nutzer darüber informiert wird, warum Sie die Standortdienste benötigen. Beispiel:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Wenn Sie
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
anrufen möchten, während die App im Hintergrund ausgeführt wird, ohne ein Bestätigungsdialogfeld auszulösen, gehen Sie vor dem Anruf so vor:
- Fügen Sie der Datei
Info.plist
den SchlüsselNSLocationAlwaysUsageDescription
hinzu. - Rufen Sie
requestAlwaysAuthorization
für eine Instanz vonCLLocationManager
auf, bevor Sie die Methode aufrufen.
Fordern Sie so eine Autorisierung von CLLocationManager
an:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Aktuellen Standort ermitteln
Wenn Sie das lokale Unternehmen oder einen anderen Ort finden möchten, an dem sich das Gerät derzeit befindet, rufen Sie GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
an. Fügen Sie die folgenden Parameter hinzu:
- Mindestens ein
GMSPlaceField
, mit dem angegeben wird, welche Datentypen zurückgegeben werden sollen. Wenn Sie diesen Parameter weglassen, werden alle möglichen Felder zurückgegeben und Ihnen entsprechend in Rechnung gestellt. Das gilt nur für „Place Details“-Anfragen. - Eine Callback-Methode zur Verarbeitung der Ergebnisse.
Die Felder entsprechen „Place Search“-Ergebnissen und sind in drei Abrechnungskategorien unterteilt: „Basic“, „Contact“ und „Atmosphere“. Für Felder der Kategorie „Basic“ gilt der Basispreis und es fallen keine zusätzlichen Kosten an. Für Felder der Kategorie „Contact“ und „Atmosphere“ werden höhere Kosten abgerechnet. Weitere Informationen zur Abrechnung von Anfragen für Ortsdaten finden Sie unter Nutzung und Abrechnung.
Die API ruft die angegebene Callback-Methode auf und gibt ein Array von GMSPlaceLikelihood
-Objekten zurück.
Jedes GMSPlaceLikelihood
-Objekt steht für einen Ort. Für jeden Ort enthält das Ergebnis eine Angabe zur Wahrscheinlichkeit, dass es sich um den richtigen Ort handelt. Je höher der Wert, desto höher ist die Wahrscheinlichkeit, dass der Ort die beste Übereinstimmung ist. Der Puffer kann leer sein, wenn der Gerätestandort keinem bekannten Ort entspricht.
Im folgenden Codebeispiel wird die Liste der Orte abgerufen, an denen sich das Gerät am wahrscheinlichsten befindet, und der Name und die Wahrscheinlichkeit für jeden Ort protokolliert.
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); } } }];
Anmerkungen zu den Wahrscheinlichkeitswerten
- Die Wahrscheinlichkeit gibt die relative Wahrscheinlichkeit an, dass der Ort die beste Übereinstimmung in der Liste der zurückgegebenen Orte für eine einzelne Anfrage ist. Die Wahrscheinlichkeiten lassen sich nicht zwischen verschiedenen Anfragen vergleichen.
- Der Wahrscheinlichkeitswert liegt zwischen 0 und 1,0.
- Die Summe der Wahrscheinlichkeiten in einem zurückgegebenen Array von
GMSPlaceLikelihood
-Objekten ist immer kleiner oder gleich 1,0. Beachten Sie, dass die Summe nicht unbedingt 1,0 ist.
Wenn Sie beispielsweise eine Wahrscheinlichkeit von 55% für Ort A und eine Wahrscheinlichkeit von 35% für Ort B angeben möchten, enthält das Array mit Wahrscheinlichkeiten zwei Elemente: Ort A mit einer Wahrscheinlichkeit von 0,55 und Ort B mit einer Wahrscheinlichkeit von 0, 35.
Quellenangaben in Ihrer App anzeigen
Wenn in Ihrer App Informationen angezeigt werden, die von GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
abgerufen wurden, müssen auch Quellenangaben eingeblendet werden. Weitere Informationen zu Attributionen