filter coordinates It doesn't work

jose juan3 years ago

I just did a fresh install of traccar, just add coordinate filter, but it doesn't work.
I've seen many examples on the forum, but none of them work.

default.xml

<properties>

    <!--

    DO NOT MODIFY THIS FILE. Use traccar.xml instead.

    -->

    <entry key='web.port'>8082</entry>
    <entry key='web.path'>./web</entry>
    <entry key='web.persistSession'>false</entry>
    
    <entry key='coordinates.filter'>true</entry>
    <entry key='coordinates.minError'>60</entry>
    <entry key='coordinates.maxError'>120</entry>

    <entry key='geocoder.enable'>true</entry>
    <entry key='geocoder.type'>nominatim</entry>
    <entry key='geocoder.url'>https://us1.locationiq.com/v1/reverse.php</entry>
    <entry key='geocoder.key'>pk.689d849289c8c63708068b2ff1f63b2d</entry>

    <entry key='logger.level'>info</entry>
    <entry key='logger.file'>./logs/tracker-server.log</entry>
    <entry key='logger.rotate'>true</entry>

    <entry key='filter.enable'>true</entry>
    <entry key='filter.future'>86400</entry>

    <entry key='event.ignoreDuplicateAlerts'>true</entry>
    <entry key='processing.computedAttributes.enable'>true</entry>
    <entry key='processing.engineHours.enable'>true</entry>

    <entry key='media.path'>./media</entry>

    <entry key='notificator.types'>web,mail</entry>

    <entry key='server.statistics'>https://www.traccar.org/analytics/</entry>

    <entry key='commands.queueing'>true</entry>

    <entry key='database.ignoreUnknown'>true</entry>
    <entry key='database.generateQueries'>true</entry>
    <entry key='database.changelog'>./schema/changelog-master.xml</entry>
 
    <entry key='database.loginUser'>
        SELECT * FROM tc_users
        WHERE email = :email OR login = :email
    </entry>

    <entry key='database.selectPositions'>
        SELECT * FROM tc_positions WHERE deviceId = :deviceId AND fixTime BETWEEN :from AND :to ORDER BY fixTime
    </entry>

    <entry key='database.selectPrecedingPosition'>
        SELECT * FROM tc_positions WHERE deviceId = :deviceId AND fixTime &lt;= :time ORDER BY fixTime DESC LIMIT 1
    </entry>

    <entry key='database.selectLatestPositions'>
        SELECT tc_positions.* FROM tc_positions INNER JOIN tc_devices ON tc_positions.id = tc_devices.positionid;
    </entry>

    <entry key='database.updateLatestPosition'>
        UPDATE tc_devices SET positionId = :id WHERE id = :deviceId
    </entry>

    <entry key='database.selectEvents'>
        SELECT * FROM tc_events WHERE deviceId = :deviceId AND eventTime BETWEEN :from AND :to ORDER BY eventTime
    </entry>

    <entry key='database.selectStatistics'>
        SELECT * FROM tc_statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime
    </entry>

    <entry key='gps103.port'>5001</entry>
    <entry key='tk103.port'>5002</entry>

Log Traccar:

2021-12-29 18:42:20  INFO: [f5f751b8] id: 452112, time: 2021-12-29 18:40:40, lat: 19.39042, lon: -102.02333, course: 0.0
2021-12-29 18:42:20  INFO: [f5f751b8] id: 452112, time: 2021-12-29 18:40:45, lat: 19.39042, lon: -102.02333, course: 0.0
2021-12-29 18:42:23  INFO: [f5f751b8: osmand < 192.168.0.13] HEX: 504f5354202f3f69643d3435323131322674696d657374616d703d31363430383234383630266c61743d31392e333930343233333333333333333334266c6f6e3d2d3130322e30323333323939393939393939392673706565643d302e302662656172696e673d302e3026616c7469747564653d302e302661636375726163793d302e3026626174743d3130302e3020485454502f312e310d0a436f6e74656e742d547970653a206170706c69636174696f6e2f782d7777772d666f726d2d75726c656e636f6465640d0a557365722d4167656e743a2044616c76696b2f322e312e3020284c696e75783b20553b20416e64726f696420393b20414f5350206f6e20494120456d756c61746f72204275696c642f505352312e3138303732302e313232290d0a486f73743a203139322e3136382e302e31333a353035350d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a20677a69700d0a436f6e74656e742d4c656e6774683a20300d0a0d0a
2021-12-29 18:42:23  INFO: [f5f751b8: osmand > 192.168.0.13] HEX: 485454502f312e3120323030204f4b0d0a636f6e74656e742d6c656e6774683a20300d0a0d0a
2021-12-29 18:42:23  INFO: [f5f751b8] id: 452112, time: 2021-12-29 18:41:00, lat: 19.39042, lon: -102.02333, course: 0.0
2021-12-29 18:42:29  INFO: [f5f751b8: osmand < 192.168.0.13] HEX: 504f5354202f3f69643d3435323131322674696d657374616d703d31363430383234383635266c61743d31392e333930343233333333333333333334266c6f6e3d2d3130322e30323333323939393939393939392673706565643d302e302662656172696e673d302e3026616c7469747564653d302e302661636375726163793d302e3026626174743d3130302e3020485454502f312e310d0a436f6e74656e742d547970653a206170706c69636174696f6e2f782d7777772d666f726d2d75726c656e636f6465640d0a557365722d4167656e743a2044616c76696b2f322e312e3020284c696e75783b20553b20416e64726f696420393b20414f5350206f6e20494120456d756c61746f72204275696c642f505352312e3138303732302e313232290d0a486f73743a203139322e3136382e302e31333a353035350d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a20677a69700d0a436f6e74656e742d4c656e6774683a20300d0a0d0a
2021-12-29 18:42:29  INFO: [f5f751b8: osmand > 192.168.0.13] HEX: 485454502f312e3120323030204f4b0d0a636f6e74656e742d6c656e6774683a20300d0a0d0a
2021-12-29 18:42:29  INFO: [f5f751b8] id: 452112, time: 2021-12-29 18:41:05, lat: 19.39042, lon: -102.02333, course: 0.0

DataBase

Description text

You can guide me in what I am doing wrong, I want to prevent the plot received when the car is parked from being saved in the database

Anton Tananaev3 years ago

You should read the documentation carefully again.

henry beltran3 years ago

this is extracted from a file (keys configuration.xml, which I can't find on github anymore)

  / **
 * Replace the coordinates with the last known ones if the change is less than one 'coordinates.minError' meters
 * or more than one meter of 'coordinates.maxError'. Helps avoid coordinate jumps during parking period
 * or jumps to zero coordinates.
 * /
Public static final ConfigKey COORDINATES_FILTER = new ConfigKey (
        "<key input = 'coordinates.filter'> true </entry>", boolean class);

/ **
 * Distance in meters. Distances below this value are handled as explained in 'coordinates.filter'.
 * /
Public static final ConfigKey COORDINATES_MIN_ERROR = new ConfigKey (
        "<key entry = 'coordinates.minError'> 20 </entry>", Integer.class);

/ **
 * Distance in meters. Distances above this value are handled as explained in 'coordinates.filter', but only if
 * The position is also marked as "invalid".
 * /
Public static final ConfigKey COORDINATES_MAX_ERROR = new ConfigKey (
        "<key entry = 'coordinates.maxError'> 30000 </entry>", Integer.class); "

In your configuration you have:

"<key entry = 'coordinates.maxError'> 120 </entry>"

this value should be in thousands of meters 30000 for example, perhaps there is the problem.

I am struggling to obtain the best possible configuration, I have certain problems with the detection of stops using Chinese devices