Mam następujący kod poniżej którego wydaje się działać prawidłowo:Android Współrzędne GPS Rozproszone
// GPS Reader // Criteria Criteria criteria = new Criteria(); //criteria.setAccuracy(Criteria.ACCURACY_COARSE); // Used when we can't get a GPS Fix criteria.setAccuracy(Criteria.ACCURACY_FINE); // Used when we can get a GPS Fix criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); LocationListener locationListener = new MyLocationListener(); LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, locationListener);
Jednak, kiedy wykres danych zebrałem na mapie, współrzędne GPS są bardzo rozproszone w niektórych przypadkach, albo pójdzie ścieżką, którą idę, po prostu znajdę, a potem cały nagły skok do punktu oddalonego o milę, a potem z powrotem. Czy istnieje sposób, aby to naprawić? Jakiś rodzaj kontroli dokładności, jak sądzę?
Aktualizacja:
Zasadniczo mój problem wygląda tak jak na przykładzie - GPS Jitter
Update 2:
nie rozważał złożenie tego bounty, ale pomyślałem, że równie dobrze może uzyskaj pełne zrozumienie tego, co się tutaj dzieje, i zobacz, czy moje podejście może zabić. Wciąż mam ten sam problem, że moje współrzędne mają drganie w nich pomimo faktu, że mam dokładność 3m, itd. Teraz może to być dostępne satelity, itp. Nie wiem, ale w zasadzie próbuję zrozumieć, jak są wszystkie te inne aplikacje, szczególnie aplikacje do ćwiczeń, które są w stanie uzyskać tak płynne odczyty w tych samych okolicznościach.
Byłem na Quora i udało mi się znaleźć to Does any running app have a feature of filtering GPS data to get more accurate tracking? Niestety nie dało mi to wiele wglądu w mój problem, z wyjątkiem tego, że możesz użyć filtru Kalmana, jeśli chcesz, ale na pewno musi być mniej skomplikowany sposób, ponieważ wątpliwość większość aplikacji tam to wdraża.
W każdym razie, jeśli inny programista chciałby podzielić się tym, co robią z pseudokodami, które byłyby bardzo cenne. Mam na myśli to, że utknąłem z Kalmanem, ale jestem pewien, że muszą być łatwiejsze do wdrożenia algorytmy, i mam nadzieję, że się ich nauczę i jak je wdrożyć, to są przyzwoite dopasowania.
Kontekst: Jest to mobilna aplikacja dla pieszych.
Istotne SO pytania starałem się zebrać informacje od Create a smooth curve from a series of GPS coordinates Smooth gps data: To był dobry początek, choć nie jestem pewien co pseudokod byłyby potrzebne do wdrożenia właściwie dostać najmniejszych kwadratów zdolny do pracy odpowiednio tak że będę miał dane GPS splajnów, które będę mógł następnie przeglądać na mapach google, aby potwierdzić, że zrobiłem to poprawnie. Myślę, że problem polega na tym, że to były ogólne dane X i Y, z jakimi miałem do czynienia, a nie współrzędne GEO, mógłbym napisać coś w testach matlab i kontynuować.
Update 3
Wizerunek zawiedli danych GPS mam już otrzymywać https://www.dropbox.com/s/ilsf8snao2no65e/gpsdata2.png
kod https://gist.github.com/4505688
Twoje wymagania dotyczące mocy i dokładności wydają się sprzeczne. Jedynym dostawcą, który zapewnia wyniki, jest ACCURACY_FINE LocationManager.GPS_PROVIDER. Dlaczego nie użyjesz go bezpośrednio, zamiast tworzyć takie kryteria: locationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0, MyLocationListener)? –
Ponadto może być rozpraszany, ponieważ urządzenie nie znajdowało się pod otwartym niebem/innymi przyczynami, które prowadzą do opóźnionego odbioru poprawki. –
OK, powrócę do tego - ponieważ początkowo miałem to ustawione, ale myślałem, że kryteria będą lepsze i spróbuję ponownie jutro. Na kartce otwartego nieba - podczas testu byłem w rejonie otwartego nieba - ale kiedy uruchamiam program taki jak mapmywalk, nie ma rozpraszania. – eWizardII