Mit dem Places SDK for iOS können Sie den Ort ermitteln, an dem sich das Gerät gerade befindet. Das ist der Ort, an dem sich das Gerät gerade befindet. Beispiele für Orte sind lokale Unternehmen, POIs und geografische Standorte.
- Autorisierung für die Standortermittlung anfordern
- Nutzungslimits
- Aktuellen Standort abrufen
- Quellenangaben in Ihrer App anzeigen
Berechtigung zur Standortermittlung anfordern
Wenn deine App
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: verwendet, muss sie die Berechtigung zur Verwendung von standortbezogenen Diensten anfordern. Fügen Sie der Datei Info.plist den Schlüssel NSLocationWhenInUseUsageDescription hinzu, um den String zu definieren, der den Nutzer darüber informiert, 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, gehen Sie vor dem Aufruf so vor:
- Fügen Sie der Datei
Info.plistden SchlüsselNSLocationAlwaysUsageDescriptionhinzu. - Rufen Sie
requestAlwaysAuthorizationfür eine beliebige Instanz vonCLLocationManagerauf, bevor Sie die Methode aufrufen.
Fordern Sie die Autorisierung von CLLocationManager so an:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Aktuellen Standort abrufen
Wenn Sie das lokale Unternehmen oder einen anderen Ort ermitteln möchten, an dem sich das Gerät gerade befindet, rufen Sie GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: auf. Geben Sie die folgenden Parameter an:
- Mindestens ein
GMSPlaceField, mit dem die zurückzugebenden Datentypen festgelegt werden. 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“-Suchergebnissen 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 einen Hinweis auf die Wahrscheinlichkeit, dass der Ort der richtige ist. Ein höherer Wert bedeutet eine höhere Wahrscheinlichkeit, dass der Ort die beste Übereinstimmung ist. Der Puffer kann leer sein, wenn kein bekannter Ort dem Gerätestandort entspricht.
Im folgenden Codebeispiel wird die Liste der Orte abgerufen, an denen sich das Gerät am wahrscheinlichsten befindet. Außerdem werden 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. Sie können die Wahrscheinlichkeiten verschiedener Anfragen nicht 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 beispielsweise die Wahrscheinlichkeit, dass der richtige Ort „Ort A“ ist, 55 % beträgt und die Wahrscheinlichkeit, dass es „Ort B“ ist, 35 %, enthält das Array „likelihood“ 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 über GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: abgerufen wurden, müssen auch Quellenangaben eingeblendet werden. Weitere Informationen zu Attributionen