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.
- Prośba o autoryzację lokalizacji
- Limity wykorzystania
- Uzyskiwanie bieżącej lokalizacji
- 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:
- Dodaj klucz
NSLocationAlwaysUsageDescription
do plikuInfo.plist
. - Zanim wywołasz metodę, wywołaj metodę
requestAlwaysAuthorization
w dowolnym wystąpieniu elementuCLLocationManager
.
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.