我从amap6.6升级过来,发现查询原来历史轨迹的坐标变成了一条直线,打开数据库发现,traccar6.11.1增加了latitudewgs84和longitudewgs84两列。
经测试发现,把原latitude列的数据复制到latitudewgs84列,在traccar6.11.1查询历史轨迹正常。
请坛主看下是不是traccar6.11.1版修改有误?
版本如下:
代码: 全选
|
1 2 3 4 5 6 |
root@mike-docker-ubuntu24:/project/cvs/loc_init# docker ps -a |grep traccar_cn_t 33e937b34590 bg6rsh/traccar-amap:ubuntu "java -Xms128m -Xmx1?" 41 hours ago Up 14 hours 0.0.0.0:60008->8082/tcp, [::]:60008->8082/tcp traccar_cn_t root@mike-docker-ubuntu24:/project/cvs/loc_init# docker images |grep traccar bg6rsh/traccar-amap ubuntu d389fd96cd9c 4 months ago 520MB |
新结构多了两列:
代码: 全选
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
MariaDB [traccar_amap610t_sync]> DESCRIBE tc_positions; +----------------+---------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------+------+-----+---------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | protocol | varchar(128) | YES | | NULL | | | deviceid | int(11) | NO | MUL | NULL | | | servertime | timestamp | NO | | current_timestamp() | | | devicetime | timestamp | NO | | NULL | | | fixtime | timestamp | NO | | NULL | | | valid | bit(1) | NO | | NULL | | | latitude | double | NO | | NULL | | | longitude | double | NO | | NULL | | | altitude | float | NO | | NULL | | | speed | float | NO | | NULL | | | course | float | NO | | NULL | | | address | varchar(512) | YES | | NULL | | | attributes | varchar(4000) | YES | | NULL | | | accuracy | double | NO | | 0 | | | network | varchar(4000) | YES | | NULL | | | geofenceids | varchar(128) | YES | | NULL | | | latitudewgs84 | double | YES | | NULL | | | longitudewgs84 | double | YES | | NULL | | +----------------+---------------+------+-----+---------------------+----------------+ |
将latitude 赋值给latitudewgs84 可正常显示的正确的结果:
代码: 全选
|
1 2 3 4 5 6 7 8 9 10 |
MariaDB [traccar_amap610t_sync]> SELECT * FROM tc_positions ORDER BY id DESC LIMIT 2; +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ | id | protocol | deviceid | servertime | devicetime | fixtime | valid | latitude | longitude | altitude | speed | course | address | attributes | accuracy | network | geofenceids | latitudewgs84 | longitudewgs84 | +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ | 942993 | huabao | 7 | 2026-04-27 10:41:11 | 2026-04-27 10:41:09 | 2026-04-27 10:41:09 | | 30.25623116321045 | 120.12434323011745 | 11 | 15.2808 | 174 | NULL | {"ignition":true,"blocked":false,"charge":false,"odometer":4323300,"rssi":31,"sat":35,"iccid":"898608340124c0428927","distance":108.6679047877219,"totalDistance":3797403.5884900284,"motion":true,"hours":1318318000} | 0 | null | null | 30.25623116321045 | NULL | | 942989 | huabao | 7 | 2026-04-27 10:40:50 | 2026-04-27 10:40:49 | 2026-04-27 10:40:49 | | 30.257207232490412 | 120.12436028143401 | 8 | 9.44925 | 188 | NULL | {"ignition":true,"blocked":false,"charge":false,"odometer":4323200,"rssi":5,"sat":34,"iccid":"898608340124c0428927","distance":121.00132321316921,"totalDistance":3797294.9205852407,"motion":true,"hours":1318298000} | 0 | null | null | 30.257207232490412 | NULL | +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ 2 rows in set (0.002 sec) |
如果没有将latitude 赋值给latitudewgs84 ,直接使用amap6.6的数据库就会出错,只显示一条竖线:
代码: 全选
|
1 2 3 4 5 6 7 8 9 10 |
MariaDB [traccar_amap610t_sync]> SELECT * FROM tc_positions ORDER BY id DESC LIMIT 2; +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ | id | protocol | deviceid | servertime | devicetime | fixtime | valid | latitude | longitude | altitude | speed | course | address | attributes | accuracy | network | geofenceids | latitudewgs84 | longitudewgs84 | +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ | 942993 | huabao | 7 | 2026-04-27 10:41:11 | 2026-04-27 10:41:09 | 2026-04-27 10:41:09 | | 30.25623116321045 | 120.12434323011745 | 11 | 15.2808 | 174 | NULL | {"ignition":true,"blocked":false,"charge":false,"odometer":4323300,"rssi":31,"sat":35,"iccid":"898608340124c0428927","distance":108.6679047877219,"totalDistance":3797403.5884900284,"motion":true,"hours":1318318000} | 0 | null | null | NULL | NULL | | 942989 | huabao | 7 | 2026-04-27 10:40:50 | 2026-04-27 10:40:49 | 2026-04-27 10:40:49 | | 30.257207232490412 | 120.12436028143401 | 8 | 9.44925 | 188 | NULL | {"ignition":true,"blocked":false,"charge":false,"odometer":4323200,"rssi":5,"sat":34,"iccid":"898608340124c0428927","distance":121.00132321316921,"totalDistance":3797294.9205852407,"motion":true,"hours":1318298000} | 0 | null | null | NULL | NULL | +--------+----------+----------+---------------------+---------------------+---------------------+-------+--------------------+--------------------+----------+---------+--------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------------+--------------------+----------------+ 2 rows in set (0.002 sec) |
建议坛主是不是保留原latitude/longitude为wgs84原版本数据,增加atitudegcj/longitudegcj两列结构,这样即能兼容原版traccar结构,也有国内坐标的支持?
我目前正常使用的还停留原amap6.6, 待老大更新后再来升级~~~
原文作者: mygod200 | 查看原帖
latitudewgs84、longitudewgs84只是用来保存原始的GPS坐标,没有作用其他用途啊。latitude、longitude中保存的是转换后的GCJ02坐标,从你的描述看前端取的是latitudewgs84、longitudewgs84的值,这不应该啊!你用的是DOCKER版本吗?
我看你用的是MariaDB数据库,你不连接老数据库,新建一个tracarTest库,用新数据库测试一下。
今天重新做了一下测试,主要方法如下:
1. 基于bg6rsh/traccar-amap:6.6和bg6rsh/traccar-amap:ubuntu (v6.11.1)两个版本在docker中新建运行,都是采用同一个mariadb版本作为数据库服务,新建对应的database,不同版本的amap对应不同的库,并将之前记录的JT808原始数据通过tcp/ip发送给traccar docker.
2.过程如下:
步骤A: amap6.6生成traccar66_cn_t, 数据库名: traccar_amap66t_sync, JT808发送数据到5015端口后,traccar里查询轨迹显示正常,mariadb里没有wgs84两列
步骤B: 关闭步骤A里生成的traccar66_cn_t,用traccar-amap:ubuntu 新生成 traccar_cn_t ,直接指向使用步骤A 数据库traccar_amap66t_sync的数据,traccar里查询轨迹不正常,显示一条在赤道上的线(应该是纬度值0),mariadb里有wgs84两列值显示为NULL
步骤C:在数据库中traccar_amap66t_sync,用UPDATE tc_positions SET latitudewgs84 = latitude; 后,traccar里查询轨迹显示正常。
3. 对比:
步骤D:用bg6rsh/traccar-amap:ubuntu生成traccar_cn_newt,使用新数据库名: traccar_amap610newt_sync, JT808发送数据到5015端口后,traccar里查询轨迹显示正常,mariadb里有wgs84两列,latitudewgs84、longitudewgs84保存原始的GPS坐标,latitude、longitude中保存的是转换后的GCJ02坐标.
结论:
1. amap6.6版、amap6.11版本新环境重新安装工作正常,
2. 但如果从amap6.6版升级到amap6.11版本,暂无法使用,会显示在赤道上的一条线。
参考: traccar.org原始en的docker,从6.2开始升到现在版本,同一个mariadb里的历史数据(单独en版的数据库),都可以显示正常使用。
不想放弃老数据,但想升新amap版本,痛苦死了

今天测试的步骤ABCD的mariadb都有数据mysqldump, 但光看数据不知道有些字段的真实意义,没看出明显的问题。因为 测试用轨迹记录只有几十条,如有需要可以单独私下提供。
先确认一下,删除 tc_positions 表中坐标值为0的记录,这些是无效记录,可以删除。
或者在配置文件中设置过滤,详见https://http://www.traccar.org/configuration-file/ 的 filter.zero 参数。