GPS positionining jumping around

Hi all,
I am using the le_gnss API on a WP7702 and I have noticed that occasionally the satellite signal jumps around a little bit.
The le_gnss_GetLocation() will return:
-32.095882415771484 115.96153259277344
-32.095794677734375 115.96141815185547
-32.095703125 115.96129608154297
-32.09560775756836 115.96116638183594
-32.101348876953125 115.96318054199219
-32.10155487060547 115.96296691894531
-32.09540939331055 115.9609146118164
-32.094993591308594 115.96037292480469
-32.09478759765625 115.9601058959961
-32.09468460083008 115.95996856689453
-32.094581604003906 115.9598388671875

In my code, before printing the position I check:
// Get position state
result = le_gnss_GetPositionState(positionSampleRef, &state);
if(state == LE_GNSS_STATE_FIX_NO_POS)
{
le_gnss_ReleaseSampleRef(positionSampleRef);
return;
}

I am also logging other parameters:
hAccuracy: 3,
altitude: 21,
vAccuracy: 30,
hSpeed: 1500,
satsInViewCount: 25,
satsTrackingCount: 23,
satsUsedCount: 16
which are pretty much the same for every sample.

At first sight I would say this is to do with the positioning giving (occasionally) the wrong value, so I was wondering if anyone had experience with this and how to fix it?
Should I filter out samples, or this could be related with antenna I am using?
Or I should not be using the gnss API but something else instead?

For instance I see there are two separate API, one is GNSS and one is Positioning, I was wondering if the positioning is already performing some sort of filtering on the acquired samples, so I don`t need to mess around with them.

Appreciate any feedback on this.

Where are you performing your tests?
It could be the case that you have some form of multi-path or similar; that is the signal from a satellite may go across some infrastructure, inducing a sort of signal rebound.
We did experience such type of situation when inside buildings or close to infrastructures or other systems that may generate interferences.
That’s why GPS should be always be correlated to an inertial system, which actually tells you if you are really moving.

By the way, are you able to get 3D fixes? In our case, we are always stuck to 2D fixes without WP7607.

@epastor I am driving my car around in the city, and logging data to a database which will show the map tracking on a web browser.
I get the 2d direction and also 3d direction, can`t see anything else in the sample file.

I mean, I am using le_pos_sample_GetFixState And that returns 1, still the sample sometimes jump around.
Is there anything in this library which controls the consistency of a new sample?
i.e. is the sample rate is 1s, and the next sample is 500m away, this should be skipped as not considered a reliable sample…

I guess it is more complex than that.
Pleople uses Kalman filtering to merge INS and GPS data.

@epastor so u are saying I can expect the sample jumping around (0ccasionally) a bit and the only possible thing without an inertial system is to filter data somehow. Correct?

Yeap.
Cell phones, for example use other positioning services through the net to compensate for this lack of accuracy in urban environments.

e.g. Products - Combain - Locate Everything Everywhere

I guess there is no way of getting a positioning from the cellular app for the legato framework… right?

We managed to get the locations of the cell towers around us, depending on the actual technology you are connected to. But legato does not provide all the information about that in many cases. So, it is difficult to perform such kind of triangulation.
In our case we use GPS+INS onboard drones, so the Mangoh GPS is has a redundant source of information.

I understand, we are connected to the vehicle can bus so we can read ground speed and also position of the steering wheel, but can’t assume this will always be possible, so what we really need is to fit an accelerometer inside the unit. Is this something ready off the shelves for some of the radio modules? Or we need to fit an extra sensor?