2

We are building an Android GPS based distance calculator for a rental car giant in India. We are having constant GPS jumps as our drivers wait and wander in closed spaces (malls, etc) when idle. This results in 1-2 Km addition to the overall distance over a period of 1 hour. How to reduce this?

Here is our logic

  1. Register to FusedLocationProvider onLocationChange (LocationUpdateRequest - Update Interval - 7 secs, i.e expecting location every 7 sec)
  2. OnLocation Change filter noisy locations with the following conditions.

    Step 1 - Filter locations with accuracy < 170 meters
    Step 2 - If the velocity is over 40 m/s (equivalent of 150 KMPH) or acceleration is over 4 m/s^2 (equivalent of 0-75 KMPH in 5 secs) then ignore it as real cars rarely go beyond these speeds, but GPS jumps frequently do.
    Step 3 - If the location is coming from Mobile Networks for beyond 5 minutes (i.e bearing/heading = 0) then start ignoring those.

  3. Finally if the location qualifies the above conditions, save them and calculate distance incrementally.

Even after all this we are still having constant issues with GPS jumps as our drivers tend to wait and wander in closed spaces (malls, etc) during wait time. These jumps result in 1-2 Km addition to the overall distance over a period of 1 hour. How can I filter the noise and smooth the data?

Can someone provide suggestions? GPS jump data can be shared if needed.

Srivatsan
  • 311
  • 1
  • 4
  • 8

1 Answers1

-1

I have not enough reputation right now - so this is an answer not a comment.

Cant you change the value from: 2 Step 1 to something like 20m?

When I use GPS_Provider I get an average accuracy of < 10m.

As long as the gps app is used for cars there should be a good gps signal.

Sorry if I understood you wrong or didnt get you. Your question sounds interesting.

Dennis
  • 90
  • 12