Current Place

Plattform auswählen: Android iOS

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.

  1. Standortautorisierung anfordern
  2. Nutzungslimits
  3. Aktuellen Standort abrufen
  4. Attributionen in Ihrer App anzeigen

Standortautorisierung anfordern

Wenn deine App GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: verwendet, muss sie die Berechtigung zur Verwendung von Standortdiensten anfordern. Fügen Sie der Datei Info.plist den Schlüssel NSLocationWhenInUseUsageDescription hinzu, um den String zu definieren, mit 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: aufrufen möchten, während die App im Hintergrund ausgeführt wird, ohne ein Bestätigungsdialogfeld aufzurufen, führen Sie vor dem Aufruf die folgenden Schritte aus:

  1. Fügen Sie der Datei Info.plist den Schlüssel NSLocationAlwaysUsageDescription hinzu.
  2. Rufen Sie vor dem Aufruf der Methode requestAlwaysAuthorization für eine beliebige Instanz von CLLocationManager auf.

Fordern Sie die Autorisierung von CLLocationManager so an:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Standort wird bestimmt

Rufen Sie GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: auf, um das lokale Unternehmen oder einen anderen Ort zu ermitteln, an dem sich das Gerät derzeit befindet. Geben Sie die folgenden Parameter an:

  • Ein oder mehrere GMSPlaceFields, die angeben, welche Datentypen zurückgegeben werden sollen. Wenn Sie diesen Parameter weglassen, werden ALLE möglichen Felder zurückgegeben und Ihnen werden entsprechend in Rechnung gestellt. Das gilt nur für „Place Details“-Anfragen.
  • Eine Callback-Methode, mit der die Ergebnisse verarbeitet werden.

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 „Place“-Daten 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. Das Ergebnis enthält für jeden Ort einen Hinweis zur Wahrscheinlichkeit, dass der Ort der richtige ist. Ein höherer Wert bedeutet eine höhere Wahrscheinlichkeit, dass der Ort am besten passt. Der Zwischenspeicher kann leer sein, 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. 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 eine relative Wahrscheinlichkeit an, dass der Ort in der Liste der zurückgegebenen Orte für eine einzelne Anfrage am besten übereinstimmt. 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 beträgt.

Um beispielsweise zu zeigen, dass Ort A mit einer Wahrscheinlichkeit von 55% und Ort B mit einer Wahrscheinlichkeit von 35% richtig sind, besteht das Wahrscheinlichkeitsarray aus zwei Elementen: Ort A mit einer Wahrscheinlichkeit von 0,55 und Ort B mit einer Wahrscheinlichkeit von 0,35.

Zuordnungen in Ihrer App anzeigen

Wenn deine App Informationen aus GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: anzeigt, müssen auch Zuordnungen angezeigt werden. Weitere Informationen zu Attributionen