/ / जीपीएस गति गलत है - जावा, एंड्रॉइड, जीपीएस, स्थान

जीपीएस गति गलत है - जावा, एंड्रॉइड, जीपीएस, स्थान

वास्तविक गति और जीपीएस की गति के बीच मेरे पास बहुत अंतर (~ 20%) है। लेकिन सबसे पहले मुझे अपना कोड दिखाएं:

private LocationManager locationMgr;
private String locationProvider;

...

// Location Manager for GPS
this.locationMgr = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
this.locationProvider = locationMgr.getBestProvider(criteria, false);
this.locationMgr.requestLocationUpdates(this.locationProvider, 0, 1.0f, this);

स्थान श्रोता में:

@Override
public void onLocationChanged(Location location) {
// Get speed from location
this.speed = location.getSpeed();

// Set speed TextView
this.gpsVelo.setText(Helper.doubleToStringParser(this.speed, Constants.KMPH, null));
}

नतीजतन मुझे एक गति मिलती है जो अलग हैमेरी कार द्वारा दिखाया गया गति। मुझे पता है कि एक कार में स्पीडोमीटर + 3-5% है, लेकिन मुझे 20% और अधिक मिला है। इसलिए मैंने एक अन्य जीपीएस ऐप के साथ परीक्षण किया है और यह मुझे एक सही मूल्य दिखाता है। मैंने गलत क्या किया?

उत्तर:

जवाब के लिए 2 № 1

जीपीएस बहुत कम गति मूल्यों पर सटीक गति प्रदान नहीं करता है।
उस कम गति पर, विभिन्न एल्गोरिदम (का उपयोग करऔसत आदि) भिन्न गति की रिपोर्ट कर सकते हैं। 10 से 20 किमी / घंटा यह 1% तक बहुत सटीक होना चाहिए। इसे किसी कार या ट्रेन में परीक्षण करें, आपको सभी जीपीएस उपकरणों के लिए एक ही अभिन्न किलोमीटर / एच मान मिलना चाहिए, जब ट्रेन कम से कम 50 किमी / घंटा तक चलती है।


उत्तर № 2 के लिए 1

location.getSpeed ​​() गति को m / s में देता है। यदि आपको इसकी आवश्यकता है किमी / घंटा में आपको इसकी आवश्यकता होगी double speed = location.getSpeed()*3.6;.