Aktualne miejsce

Wybierz platformę: Android iOS

Za pomocą pakietu SDK Miejsc na iOS możesz się dowiedzieć, gdzie obecnie znajduje się urządzenie. To oznacza miejsce, które zostało aktualnie zgłoszone w urządzeniu. Mogą to być lokalne firmy, ciekawe miejsca lub lokalizacje geograficzne.

  1. Prośba o autoryzację lokalizacji
  2. Limity wykorzystania
  3. Uzyskiwanie bieżącej lokalizacji
  4. Atrybucja w aplikacji

Prośba o autoryzację lokalizacji

Jeśli Twoja aplikacja korzysta z GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, musi prosić o pozwolenie na korzystanie z usług lokalizacyjnych. Dodaj klucz NSLocationWhenInUseUsageDescription do pliku Info.plist, aby określić ciąg znaków informujący użytkownika, dlaczego potrzebujesz usług lokalizacyjnych. Przykład:

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

Jeśli chcesz wywołać metodę findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, gdy aplikacja działa w tle, bez wyświetlania okna potwierdzenia, przed wykonaniem połączenia wykonaj te czynności:

  1. Dodaj klucz NSLocationAlwaysUsageDescription do pliku Info.plist.
  2. Zanim wywołasz metodę, wywołaj metodę requestAlwaysAuthorization w dowolnym wystąpieniu elementu CLLocationManager.

Poproś agencję CLLocationManager o autoryzację w ten sposób:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Pobieram bieżącą lokalizację

Aby znaleźć lokalną firmę lub inne miejsce, w którym znajduje się obecnie urządzenie, zadzwoń pod numer GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:. Uwzględnij te parametry:

  • Co najmniej jeden GMSPlaceField, który określa typy danych do zwrócenia. Jeśli pominiesz ten parametr, zostaną zwrócone wszystkie możliwe pola, co spowoduje naliczenie odpowiednich opłat. Dotyczy to tylko próśb o dostęp do miejsc.
  • Metoda wywołania zwrotnego do obsługi wyników.

Pola odpowiadają wynikom wyszukiwania miejsc i są podzielone na 3 kategorie płatności: Podstawowe, Kontakty i Atmosfera. Pola podstawowe są rozliczane według stawki podstawowej i nie ponoszą żadnych dodatkowych opłat. Koszty w polach kontaktu i atmosfery są wyższe. Więcej informacji o naliczaniu opłat za żądania danych o miejscach znajdziesz w artykule Użycie i płatności.

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

Każdy obiekt GMSPlaceLikelihood reprezentuje miejsce. W przypadku każdego miejsca wynik wskazuje prawdopodobieństwo, że to miejsce jest właściwe. Wyższa wartość oznacza większe prawdopodobieństwo, że miejsce jest najlepiej dopasowane. Bufor może być pusty, jeśli nie jest znane miejsce odpowiadające lokalizacji urządzenia.

Ten przykładowy kod pobiera listę miejsc, w których prawdopodobnie zlokalizowano urządzenie, i rejestruje nazwę oraz prawdopodobieństwo dla każdego miejsca.

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 to względne prawdopodobieństwo, że dane miejsce najlepiej pasuje do listy zwróconych miejsc dla pojedynczego żądania. Nie można porównywać prawdopodobieństwa w przypadku różnych żądań.
  • Wartość prawdopodobieństwa będzie mieścić się w zakresie od 0 do 1,0.
  • Suma prawdopodobieństwa w zwróconej tablicy obiektów GMSPlaceLikelihood jest zawsze mniejsza niż lub 1,0. Pamiętaj, że suma nie jest równa 1,0.

Aby na przykład dać 55% prawdopodobieństwa, że właściwe miejsce to Miejsce A, a 35% prawdopodobieństwo, że to miejsce B, tablica prawdopodobieństwa ma 2 członki: miejsce A z prawdopodobieństwem o wartości 0,55, a miejsce B z prawdopodobieństwem 0,35.

Wyświetlanie atrybucji w aplikacji

Gdy aplikacja wyświetla informacje uzyskane ze strony GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, musi też zawierać informacje o atrybucji. Dowiedz się więcej o atrybucjach.