Mit dem Places SDK for iOS lässt sich herausfinden, wo sich das Gerät derzeit befindet. Das ist der Ort am aktuell gemeldeten Standort des Geräts. Beispiele für Orte sind lokale Unternehmen, POIs und geografische Standorte.
- Standortautorisierung anfordern
- Nutzungslimits
- Aktuellen Standort abrufen
- Attributionen in der App einblenden
Standortautorisierung anfordern
Wenn Ihre App GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
verwendet, muss die App die Berechtigung zur Verwendung der Standortdienste anfordern. Fügen Sie der Datei Info.plist
den Schlüssel NSLocationWhenInUseUsageDescription
hinzu, um den String zu definieren, der dem Nutzer mitteilt, warum Sie die Standortdienste benötigen. Beispiel:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Wenn Sie findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
aufrufen möchten, während die App im Hintergrund ausgeführt wird, ohne dass ein Bestätigungsdialogfeld ausgelöst wird, führen Sie vor dem Aufruf die folgenden Schritte aus:
- Fügen Sie der Datei
Info.plist
den SchlüsselNSLocationAlwaysUsageDescription
hinzu. - Rufen Sie
requestAlwaysAuthorization
auf einer beliebigen Instanz vonCLLocationManager
auf, bevor Sie die Methode aufrufen.
So fordern Sie die Autorisierung von CLLocationManager
an:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Aktuellen Standort abrufen
Rufen Sie GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
auf, um das lokale Unternehmen oder den Ort zu finden, an dem sich das Gerät derzeit befindet. Fügen Sie die folgenden Parameter ein:
- Ein oder mehrere
GMSPlaceField
, die angeben, welche Datentypen zurückgegeben werden sollen. Wenn Sie diesen Parameter weglassen, werden ALLE möglichen Felder zurückgegeben und entsprechend in Rechnung gestellt. Dies gilt nur für Place Details-Anfragen. - Eine Callback-Methode, mit der die Ergebnisse verarbeitet werden.
Die Felder entsprechen den Ergebnissen der Ortssuche und sind in drei Abrechnungskategorien unterteilt: „Basic“, „Contact“ und „Atmosphere“. Basisfelder werden zum Basispreis abgerechnet und es fallen keine zusätzlichen Kosten an. Die Felder „Kontakt“ und „Atmosphäre“ werden zu einem höheren Preis abgerechnet. Weitere Informationen zur Abrechnung von Ortsdatenanfragen 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 stellt einen Ort dar. Das Ergebnis enthält für jeden Ort einen Hinweis auf die Wahrscheinlichkeit, dass der Ort der richtige ist. Je höher der Wert, desto größer ist die Wahrscheinlichkeit, dass der Ort am besten passt. Der Zwischenspeicher ist möglicherweise leer, wenn es keinen bekannten Ort gibt, der dem Gerätestandort entspricht.
Im folgenden Codebeispiel wird die Liste der Orte abgerufen, an denen sich das Gerät höchstwahrscheinlich befindet. Für jeden Ort werden der Name und die Wahrscheinlichkeit 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 eine relative Wahrscheinlichkeit an, dass der Ort die beste Übereinstimmung in der Liste der zurückgegebenen Orte für eine einzelne Anfrage ist. Die Wahrscheinlichkeit kann nicht für verschiedene Anfragen verglichen werden.
- 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 zwingend 1,0 beträgt.
Beispiel: Für eine 55% ige Wahrscheinlichkeit, dass der richtige Ort ein Ort A ist, und eine Wahrscheinlichkeit von 35 %, dass er Ort B ist, hat das Wahrscheinlichkeitsarray zwei Mitglieder: Ort A mit einer Wahrscheinlichkeit von 0,55 und Ort B mit einer Wahrscheinlichkeit von 0,35.
Attributionen in der App anzeigen
Wenn deine App Informationen aus GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
anzeigt, muss sie auch Quellenangaben enthalten. Weitere Informationen zu Attributionen