Za pomocą pakietu SDK Miejsc na iOS możesz sprawdzić, gdzie obecnie znajduje się urządzenie. Oznacza to, że jest to miejsce w aktualnie zgłaszanej lokalizacji urządzenia. Mogą to być na przykład lokalne firmy, ciekawe miejsca i lokalizacje geograficzne.
- Prośba o autoryzację lokalizacji
- Limity wykorzystania
- Sprawdzanie bieżącej lokalizacji
- Wyświetlanie atrybucji w aplikacji
Prośba o autoryzację lokalizacji
Jeśli Twoja aplikacja korzysta z danych
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
,
musi prosić o pozwolenie na korzystanie z usług lokalizacyjnych. Dodaj do pliku Info.plist
klucz NSLocationWhenInUseUsageDescription
, aby zdefiniować ciąg znaków informujący użytkownika, dlaczego potrzebujesz usług lokalizacyjnych. Na przykład:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Jeśli chcesz wywołać
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
,
gdy aplikacja działa w tle, bez wyświetlania okna z potwierdzeniem, przed wykonaniem wywołania wykonaj te czynności:
- Dodaj do pliku
Info.plist
kluczNSLocationAlwaysUsageDescription
. - Wywołaj
requestAlwaysAuthorization
w dowolnej instancjiCLLocationManager
przed wywołaniem metody.
Poproś CLLocationManager
o autoryzację w ten sposób:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Pobieram bieżącą lokalizację
Aby znaleźć firmę lokalną lub inne miejsce, w którym znajduje się obecnie urządzenie, zadzwoń pod numer GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
. Uwzględnij te parametry:
- Co najmniej 1 element
GMSPlaceField
określający typy danych, które mają zostać zwrócone. Jeśli pominiesz ten parametr, zwrócone zostaną WSZYSTKIE możliwe pola i odpowiednio naliczymy opłaty. Dotyczy to tylko próśb o szczegóły miejsca. - Metoda wywołania zwrotnego do obsługi wyników.
Pola odpowiadają wynikom wyszukiwania miejsc i są podzielone na 3 kategorie rozliczeń: Podstawowe, Kontakt i Atmosfera. Pola podstawowe są rozliczane według stawki podstawowej i nie powodują naliczenia żadnych dodatkowych opłat. Pola Kontakt i Atmosfera są rozliczane według wyższej stawki. Więcej informacji o naliczaniu opłat za żądania dotyczące danych miejsc znajdziesz w artykule Korzystanie i płatności.
Interfejs API wywołuje określoną metodę wywołania zwrotnego, zwracając tablicę obiektów GMSPlaceLikelihood
.
Każdy obiekt GMSPlaceLikelihood
reprezentuje miejsce. W przypadku każdego miejsca wynik zawiera wskaźnik prawdopodobieństwa, że dane miejsce jest właściwe. Wyższa wartość oznacza większe prawdopodobieństwo, że dane miejsce jest najlepiej dopasowane. Bufor może być pusty, jeśli nie jest znane miejsce odpowiadające lokalizacji urządzenia.
Poniższy przykładowy kod pobiera listę miejsc, w których urządzenie prawdopodobnie się znajdzie, oraz zapisuje nazwę i 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 na temat wartości prawdopodobieństwa:
- Prawdopodobieństwo określa względne prawdopodobieństwo, że dane miejsce jest najlepszym dopasowaniem na liście zwróconych miejsc w przypadku danego żądania. Nie możesz porównywać prawdopodobieństwa w przypadku różnych żądań.
- Wartość prawdopodobieństwa mieści się w przedziale od 0 do 1,0.
- Suma prawdopodobieństwa w zwróconej tablicy obiektów
GMSPlaceLikelihood
jest zawsze mniejsza lub równa 1,0. Pamiętaj, że suma nie musi wynosić 1,0.
Aby na przykład przedstawić prawdopodobieństwo 55%, że prawidłowe miejsce to miejsce A, a prawdopodobieństwo, że jest to miejsce B, wynosi 35%, tablica prawdopodobieństwa ma 2 elementy: Miejsce A z prawdopodobieństwem 0,55 i 35% z prawdopodobieństwem wynoszącym 0,35.
Wyświetlanie atrybucji w aplikacji
Gdy aplikacja wyświetla informacje uzyskane ze strony GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
, musi też wyświetlać atrybucje. Dowiedz się więcej o atrybucjach.