Która nawigacja jest lepsza? (internetowa czy GPS)

0

Witam,

Piszę aplikację, do której potrzebna jest lokalizacja. Mam locationmanager z GPS (LocationManager.GPS_PROVIDER) i zastanawiam się, czy zostawić GPS.PROVIDER czy zmienić na NETWORK_PROVIDER
który z nich jest lepszym rozwiązaniem?

0

Zależy do czego chcesz jej użyć.
NETWORK_PROVIDER - zwykle zawsze jest w jakiś sposób dostępna. Wyjątkiem jest chyba tylko tryb samolotowy. Nie zżera baterii i nie wymaga żeby użytkownik uruchomił coś specjalnie. Minusem jest baaaardzo zgrubna pozycja. Przydaje się tylko jeżeli dokładność nie jest najważniejsza. Dobrym przypadkiem może być na przykład aplikacja do pogody. Dane pogodowe nie są na tyle dokładne żeby różnicę robiło 300 metrów.
GPS_PROVIDER - bardzo dokładny, ale wymaga uruchomienia GPS w komórce, zżera więcej baterii. Przydatne gdy robisz apkę gdzie dokładność ma znaczenie, czyli nawigacje, podróbki endomondo, czy coś na wzór Pokemon GO.

0

A GPS działa wszędzie? A rozwiązanie, by mieć włączone oba na raz jest dobre?

0

GPS_PROVIDER - ma problemy w zabudowanich NETWORK_PROVIDER- działa wszędzie gdzie masz sieć komórkową pokazuje pozycje i zasięg przekaźnika do którego jesteś przyłączony nie ma zasięgu kom. to używasz GPS_PROVIDER- który łączy się z satelitami które określaja twoją pozycje oraz wysokość.
Można mieć uruchomione oba szybciej ustali pozycje. Większość nawigacji w telefonach używają obu rozwiązań.
Najlepiej napisz do czego potrzebujesz to podpowiemy jaki będzie najlepszy dla twojego projektu.

0

Napisałem aplikację która mierzy kilometry podczas jazdy samochodem w terenie zabudowanym

0

No to tylko GPS_PROVIDER- pisząc że ma problemy w zabudowanich miałem na myśli że jak włączysz navi i będziesz chodził po jakiś piwnicach to się nie sprawdzi. Przy jeździe samochodem będzie GIT.

0

A mogę w tym projekcie mieć oba providery?

0

Zbadaj to sam. Napisz aplikację która będzie zaznaczać punkty obecne na mapie i przycisk który przełącza provider. Odpal ją, przejedź się na rowerze i zobacz jaka jest różnica. Możesz mieć oba w teorii. W praktyce do pomiaru odległości się zupełnie nie nadaje.

0

A GPS w mieście często traci zasięg? Jaka funkcja zmienia providera z GPS na NETWORK (chciałbym tego użyć w funkcji onStatusChanged, gdy GPS straci zasięg)? czym się różni to, gdy mam tylko providera GPS, a gdy mam oba providery?

0
MrCode napisał(a):

A GPS w mieście często traci zasięg? Jaka funkcja zmienia providera z GPS na NETWORK (chciałbym tego użyć w funkcji onStatusChanged, gdy GPS straci zasięg)? czym się różni to, gdy mam tylko providera GPS, a gdy mam oba providery?

A nie jest teraz w Androidzie tak, że przełączanie pomiędzy GPS/NETWORK dla pomiarów lokalizacji jest robione automatycznie? Pewnie, można bawić się w to ręcznie, ale GoogleApiClient, GooglePlayServices, ogólnie LocationServicesAPI załatwia to i nie trzeba zawracać sobie tym głowy.
Odpowiadając na pytanie: różnie z zasięgiem. Wejdź w metro, stracisz na pewno, do Stokrotki może tak, może nie, do bloku - zależy gdzie okna i gdzie będziesz z telefonem... Ogólnie zasada taka, że GPS na zewnątrz, NETWORK gdy jest się w środku.

0

W nawigacjach samochodowych jest tylko GPS i jakoś tysiące ludzi po miastach jeździ. Dopóki nie jesteś pomiędzy wieżowcami na Manhatanie albo nie trzymasz telefonu w plecaku schowanym w bagażniku to raczej utraty zasięgu są rzadkie. Oba providery pozwalają szybciej złapać zasięg. Komórkowy daje od razu pozycję "mniej więcej" i wtedy GPS już ma uproszczone zadanie przy szukaniu sygnału (czy jakoś tak)

0

A co może być przyczyną tego, że nawet gdy telefon leży to po 5 minutach ma naliczony kilometr?

0

To ze nawigacja w telefonie ma pewien margines dokladnosci, GPS troche mniejszy a Network to juz spory rozrzut. Wiec nawet jak stoisz w miejscu to w zaleznosci od sily sygnalu i roznych innych czynnikow (gestosc artmosfery, odleglosc od satelity nawigacyjnego) wskazania beda sie roznic, czasem o kilka metrow (lub wiecej dla opcji Network). Wiec za kazdym razem kiedy telefon oblicza pozycje to moze ona wyjsc troche inna, co ty w swoim programie od razu odczytujesz jako ruch, a wcale nie musi to byc prawda. Musisz przyjac jakas minimalna zmiane pozycji ponizej ktora jest zliczana.

0

a jaki mniej więcej jest rozrzut przy GPS, a jaki przy Network?

0

Przy GPS kilka-kilkadziesiąt metrów w zależności od ilości satelitów z którymi połączy się odbiornik. Jeżeli nie będziesz w dużym skupisku wysokich budynków to dokładność powinna być bardzo wysoka. W przypadku Network dokładność kilkadziesiąt-kilkaset metrów w zależności od zagęszczenia nadajników GSM i Wifi w okolicy.

Sam możesz to łatwo porównać: włącz nawigację w telefonie, a następnie porównaj jak działa z włączonym i wyłączonym GPS.

0

a są jakieś sposoby, żeby zwiększyć dokładność?

0

Dla Network raczej nie bardzo bo tak jak Haskell powiedział to zależy od gęstości nadajników. Tak na prawdę to poza dużymi miastami często co najwyżej dowiesz się w jakiej gminie jesteś :P
GPS to chyba zwykle 1-10m dokładności. Mniej niż 1m nigdy nie będzie bo chyba nawet przepisy dla nawigacji cywilnych tego zabraniają. Z doświadczenia wiem, że w mieście między budynkami jest to bliżej tych 10m. Możesz co najwyżej interpolować (?) wartości bo sama dokładność GPSu zależy od sygnału z satelitów.

0

Nie. Tak jak pisałem dokładność Network zależy od ilości nadajników GSM oraz Wifi (jeżeli włączysz Wifi) w okolicy w której się poruszasz. Im dalej od cywilizacji tym dokładność będzie gorsza, a rozrzut będzie co raz większy.

W przypadku GPS dokładność zależy od tego z iloma satelitami się połączysz, a to zależy od jakości sensora i okolicy w której się poruszasz. Jeżeli będzie bardzo duże zachmurzenie lub będziesz poruszał się wśród wysokich budynków to dokładność będzie mniejsza.

Generalnie Network nie nadaje się do nawigowania, pokazywania przebytej trasy itp. Network nadaje się jedynie do zgrubnego wyznaczenia położenia np. dzielnica, miejscowość itp.

0

a jak zrobić, żeby brało z GPS lokalizację jeżeli to możliwe, a jeżeli nie, to z internetu? bo mam włączone dwa providery, miałem ustawionego listenera gdy lokalizacja będzie co najmniej 10 a i tak mi dodawało gdy telefon leżał
często jest tak, że GPS nie może żadnej satelity znaleźć? (w mieście)

0

często jest tak, że GPS nie może żadnej satelity znaleźć? (w mieście)

Jak jesteś w budynku, to jest to prawdopodobne. Przy widoczności nieba to 3 satelity (to minimalna liczba do ustalenia pozycji) są dostępne praktycznie zawsze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1