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.
- Prośba o autoryzację lokalizacji
- Limity wykorzystania
- Pobierz bieżącą lokalizację
- 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:
- Dodaj klucz
NSLocationAlwaysUsageDescription
do plikuInfo.plist
. - Wywołaj funkcję
requestAlwaysAuthorization
w dowolnej instancjiCLLocationManager
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.