Aktualne miejsce

Wybierz platformę: Android iOS

Korzystając z pakietu SDK Places dla iOS, możesz dowiedzieć się, gdzie jest aktualnie zlokalizowane urządzenie. Oznacza to, że w pobliżu obecnie zgłaszanej lokalizacji. Przykłady miejsc to firmy działające lokalnie, ciekawe miejsca i lokalizacje geograficzne.

  1. Prośba o autoryzację lokalizacji
  2. Limity wykorzystania
  3. Pobierz bieżącą lokalizację
  4. Wyświetlanie atrybucji w aplikacji

Prośba o autoryzację lokalizacji

Jeśli aplikacja używa GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, musi poprosić o pozwolenie na korzystanie z usług lokalizacyjnych. Dodaj parametr Klucz NSLocationWhenInUseUsageDescription do urządzenia Info.plist należy zdefiniować ciąg informujący użytkownika, dlaczego potrzebujesz lokalizacji usług Google. Na przykład:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

Jeśli chcesz zadzwonić findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, gdy jeśli aplikacja działa w tle, bez wyświetlania okna potwierdzenia, wykonaj te czynności przed nawiązaniem połączenia:

  1. Dodaj klucz NSLocationAlwaysUsageDescription do pliku Info.plist.
  2. Wywołaj funkcję requestAlwaysAuthorization w dowolnej instancji CLLocationManager przed wywołaniem metody.

Poproś użytkownika CLLocationManager o autoryzację:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Pobieram bieżącą lokalizację

Aby znaleźć lokalną firmę lub inne miejsce, w którym znajduje się urządzenie Zlokalizowany, wywołaj GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: Uwzględnij następujące parametry:

  • Co najmniej jedna GMSPlaceField określająca typy danych zwrócić. Jeśli pominiesz ten parametr, zwrócone zostaną WSZYSTKIE możliwe pola, a funkcja zostanie naliczona odpowiednia opłata. Dotyczy to tylko próśb o dostęp do informacji o miejscu.
  • Metoda wywołania zwrotnego do obsługi wyników.
.

Pola odpowiadają wynikom wyszukiwania miejsc i są podzielone na trzy kategorie płatności: Podstawowe, kontaktowe i atmosfera. Pola podstawowe są rozliczane według stawki podstawowej i nie wiążą się z dodatkowymi kosztami opłaty. Za pola Kontakt i Atmosfera opłaty są naliczane według wyższej stawki. Więcej informacji na temat sposobu naliczania opłat za żądania danych miejsc. Korzystanie i rozliczenia.

Interfejs API wywołuje określoną metodę wywołania zwrotnego, zwracając tablicę GMSPlaceLikelihood obiektów.

Każdy GMSPlaceLikelihood reprezentuje miejsce. W przypadku każdego miejsca wynik zawiera wskazuje prawdopodobieństwo, że dane miejsce jest odpowiednie. Większą wartość oznacza większe prawdopodobieństwo, że dane miejsce jest najlepiej dopasowane. Bufor może to pole musi być puste, jeśli nie istnieje znane miejsce odpowiadające lokalizacji urządzenia.

Następujący przykładowy kod pobiera listę miejsc, w których znajduje się urządzenie z największym prawdopodobieństwem, oraz rejestruje nazwę i prawdopodobieństwo dla każdego z nich.

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);
    }
  }
}];

Uwagi dotyczące wartości prawdopodobieństwa:

  • Prawdopodobieństwo podaje prawdopodobieństwo względne miejsca, które jest najlepiej dopasowane do listy zwróconych miejsc dla danego tylko jedno żądanie. Nie można porównywać prawdopodobieństwa dla różnych żądań.
  • Wartość prawdopodobieństwa mieści się w zakresie od 0 do 1,0.
  • Suma prawdopodobieństwa w zwróconej tablicy GMSPlaceLikelihood jest zawsze mniejsza lub równa 1,0. Suma musi być różna od zawsze 1.0.

Na przykład, aby przedstawić 55% prawdopodobieństwa, że właściwym miejscem jest Miejsce A, i 35% prawdopodobieństwa, że jest to miejsce B, tablica prawdopodobieństwa ma dwa elementy: miejsce A z prawdopodobieństwo 0,55, Miejsce B z prawdopodobieństwo 0,35.

Wyświetlanie atrybucji w aplikacji

Kiedy aplikacja wyświetla informacje uzyskane z: GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, aplikacja musi też zawierać informacje o autorze. Więcej informacji o atrybucje.