2016-08-15 29 views
5

Korzystam z Google go API, aby uzyskać prawidłowe informacje o bieżącym miejscu. I used this code in the App i odnieść sukces, aby pobrać listę wszystkich pobliskich lokalizacji, ale jak mogę rozpoznać moją dokładną bieżącą lokalizację z listy?Google dokładność bieżącego miejsca w iOS

Przeczytałem dokument i stwierdziłem, że otrzymujemy aktualną lokalizację z listy na podstawie prawdopodobieństw (wartość od 0 do 1).

Większa wartość prawdopodobieństw oznacza większe prawdopodobieństwo, że miejsce jest najlepiej dopasowane.

Ale moja obecna lokalizacja pojawia się na tej liście, ale wartość prawdopodobieństwa nie jest wyższa.

Mam więc dwa pytania:

1) W jaki sposób można rozpoznać dokładnie moją aktualną lokalizację? Czy jest tam jakieś inne ustawienie, czy też istnieje jakaś metoda ostrzegania? (Bez użycia urządzenia do wybierania)

2) Jeśli opuścisz bieżące miejsce, chcę wykonać pewne działanie, więc jak mogę uzyskać, że ostatnio opuściłem to miejsce? jak sprawdzone/wylogowane?

+0

Co v otrzymałeś alue z prawdopodobieństw? – KENdi

+0

@KENdi - Otrzymałem listę wartości pomiędzy 0 a 1, ale wartość maksymalna nie jest moim bieżącym miejscem. Jak więc uzyskać dokładne wartości prawdopodobieństw? – iPatel

Odpowiedz

4

Interfejs API Google wymaga zainicjowania menedżera CLLocationManager. Ponieważ masz już menedżera lokalizacji, możesz ustawić swoją klasę jako CLLocationManagerDelegate. Zapewnia to rodzime iOS metod, które oznacza, że ​​można dostać zarówno dokładną lokalizację i powiadomienie, że lokalizacja zmieniły

Aby uzyskać dokładną lokalizację:

[self.locationManager requestLocation]; //Get the current location once (iOS 9 and above) 

monitorować lokalizację:

[self.locationManager startUpdatingLocation] // Ask for the current location until you call stopUpdatingLocation 
// or 
[self.locationManager startMonitoringSignificantLocationChanges] // Tells you when your location has greatly changed 

następnie trzeba zgodne z protokołem, który ma 2 sposoby na minimum:

- (void)locationManager:(CLLocationManager *)manager 
didUpdateLocations:(NSArray<CLLocation *> *)locations 
// Do anything that you need to do once you have a location update 

- (void)locationManager:(CLLocationManager *)manager 
    didFailWithError:(NSError *)error 
// Your location update failed, handle it 
+0

To mi nie pomoże, ponieważ CLLocationManager nie poda dokładnych informacji o mojej bieżącej lokalizacji .. podobnie jak nazwa miejsca, pełny adres, ocena itp. – iPatel

+0

Możesz przekazać lokalizację zwróconą przez iOS do Google, aby uzyskać informacje o lokalizacji (znane jako geokodowanie odwrotne). Lokalizacja systemu iOS da Ci szerokość i długość geograficzną, a możesz ją przekazać do https: //maps.googleapis.com/maps/api/geocode/json? Latlng = xx.xxxxxx, -yy.yyyyyy & key = YOUR_API_KEY'. Oto link, aby przeczytać więcej na ten temat: https://developers.google.com/maps/documentation/geocoding/start . W przeciwnym razie największe prawdopodobieństwo jest twoje najlepsze. –

+0

To nie daje mi dokładnych informacji o lokalizacji, takich jak google miejsce daj mi dokładnych informacji przez problem listy jest tylko prawdopodobieństwo jest źle, więc nie mogę uzyskać właściwej informacji o lokalizacji. – iPatel