How to filter illogical and incorrect positions

Nils Leideck a day ago

Dear all,

I have a tracker device that is sending data that looks incorrect or at least illogical. I cannot change the device for now, so I would like to understand if there are some "smart" filter options in Traccar Server to ignore those illogical positions. I do not care much about the display on the map, but the real issue is, that the device is triggering incorrect Geo Fence events all the time.

Here you can see a screenshot of a replay from this month. The positions along the red lines and within the red circle are OK. All other positions are NOT OK.

Selected April 08 2026 12:48:09.png

I am not very sure what additional information can be helpful and I do not want to SPAM this post with information. I do have all raw data and everything if needed.

Thank you very much!

-- Cheers, Nils

Anton Tananaev a day ago

You can try using distance filter, but the jumps look too large.

Nils Leideck a day ago

Hi Anton,

is there more non-code documentation about these filters? I have seen these in the forums, but do not really understand how they work:

<entry key='filter.distance'>##</entry>
<entry key='coordinates.filter'>true</entry>
<entry key='coordinates.minError'>##</entry>
<entry key='coordinates.maxError'>##</entry>

I suppose that you were refering to the filter.distance or FILTER_DISTANCE option. Can you explain those a little bit and also if filter.distance only works with coordinates.filter set to true?

Anton Tananaev a day ago

filter.distance is completely unrelated to coordinates filter. It fill filter data points if they're within certain radius from the last data point.

Nils Leideck a day ago

I do not think that this will help, as I have some data points that are expected to be close to each other.

Is there a filter that can check for jumps of more than 20 meter in less than 1 second, for example?

Anton Tananaev a day ago

Max speed filter.

Nils Leideck a day ago

Ah, I have seen this filter somewhere... What do you think of this combination for my problem?

<entry key='filter.enable'>true</entry>
<entry key='filter.maxSpeed'>72</entry>      <!-- 72 km/h = 20 m/s -->
<entry key='filter.zero'>true</entry>        <!-- Ignore zero coordinates -->
<entry key='filter.invalid'>true</entry>     <!-- Ignore invalid positions -->

Additionally, I have come across this filter:

<entry key='coordinates.filter'>true</entry>
<entry key='coordinates.minError'>20</entry> <!-- Minimum accuracy for coordinate filters -->

But I have seen you often warn of this leading to no position updates. Not sure if it can help with my problem, too.

-- Cheers, Nils

Anton Tananaev a day ago

It is dangerous setting because if you reach 72 km/h then everything will be filtered after that.

Nils Leideck a day ago

I understand - that might be too restrictive ... Any other idea?

Anton Tananaev a day ago

You should know the most context on how to detect invalid positions. The ones I mentioned are the typical options.

Nils Leideck a day ago

Anton, will filter.zero result into LBS data not calculated anymore? My devices are sending LBS data but then the lat and lon data is usally just zero values. Is LBS/wifi data evaluated first and then filter.zero is applied, or the other way round?

Anton Tananaev 20 hours ago

LBS handling is done before filtering.