2013-01-17 9 views
17

Zajmuję się tworzeniem aplikacji Android, który daje powiadomienie, gdy użytkownik wchodzi w określonej lokalizacji
Użytkownik może określić położenie za pomocą długości i szerokości geograficznej (tzn Google Map)
wiem jak dostać szerokość geograficzna & długość geograficzna, ale moim problemem jest to, że gdy użytkownik wejdzie w określone miejsce, to nie będzie dokładnie pasuje do podanej szerokości geograficznej & długości geograficznej. enter image description hereAndroid: Get powiadomienie, gdy użytkownik wchodzi w określonej lokalizacji

Jak pokazano na zdjęciu, załóżmy, że użytkownik określi lokalizację o nazwie "Moje miejsce", gdy użytkownik wejdzie w obszar (około 20 metrów), wówczas aplikacja powinna wysłać powiadomienie do użytkownika.
Chcę wiedzieć, w jaki sposób mogę porównać szerokość geograficzną & długości geograficznej, dla której określono użytkownika (Moje miejsce) i aktualną szerokość geograficzną & długości geograficznej pobieranej przez aplikację przez GPS. Porównanie wykonane w taki sposób, aby było prawdziwe, jeśli użytkownik znajduje się w pobliżu Mojego miejsca w obszarze 20 metrów. (To 20 metrów jest przybliżone.) Czy mogę ustawić dokładność w systemie Android, np. 20 metrów.
Dziękuję.

Odpowiedz

16

Najlepszym rozwiązaniem tego problemu jest użycie funkcji GeoFences. Aby uzyskać więcej informacji, patrz: https://developer.android.com/training/location/geofencing.html.

Zarys: - Aplikacja rejestruje się w systemie operacyjnym - mówiąc - tutaj znajduje się MOJA lista geofence (konkretna lokalizacja + promień z lokalizacji), którą chcę monitorować. - Jeśli mój użytkownik znajdzie się w tym geo-ogrodzeniu - obudź mnie i powiedz mi. - W tym momencie - możesz wykonać dowolny krok (albo zadzwoń do serwera i zapytaj, jakie informacje chcesz wyświetlić użytkownikowi), albo po prostu wyślij powiadomienie push (w powiadomieniu aplikacji), aby wykonać niezbędną pracę.

Mam nadzieję, że to pomoże.

+0

Czy to działa, gdy GPS jest wyłączony? – chinmish

6

Spójrz na funkcję LocationManager.addProximityAlert. Dokładnie to, co chcesz. Ostrzegamy, że korzysta z dużej ilości baterii.

+0

Czy istnieje jakieś lepsze rozwiązanie, które wymaga mniejszej mocy ciasta? Dzięki ... –

+1

Niezupełnie. Zasadniczo musisz zrobić to, co robi - sprawdzaj za każdym razem, gdy aktualizacje lokalizacji GPS, i sprawdź, czy jesteś w zasięgu, wykonując kontrolę odległości między lokalizacją a celem. Moc jest używana, ponieważ w tym celu zawsze potrzebujesz GPS. Pamiętaj, aby usunąć alert, gdy go nie potrzebujesz. –

+0

Więc mówisz, że Instendof za pomocą addProximityAlert() powinienem sprawdzić odległość za pomocą lat. i lon. konkretnej lokalizacji i aktualnej lokalizacji. Czy mam prawo czy cokolwiek innego? –

1

Można uczynić gps łączenie obliczenia z przestrzennych funkcji odległości

Jest punkt SDK (Android & ios) od Bluedotinnovation która ma większą dokładność i mniejsze zużycie baterii także podobne darmowy SDK Radar

Radar Geofencing jest jest potężniejszy niż natywne iOS lub Android geofencing, z wieloplatformową obsługą nieograniczonych obszarów geofence, terenów wielobokowych, wykrywania zatrzymania i dokładności do 30 metrów.

Posiadają również funkcję ReactNative.

Powiązane problemy