本帖最后由 bg6rsh 于 2019-11-1 08:40 编辑
前几个月刚在黑群晖中搭建了 HomeAssistant,挂载了 Traccar服务,将车上的安卓导航接入到 Traccar中,能够查询车辆的运行轨迹,简直是太棒了。默认地图加载太慢,而且地图太老了,到处翻论坛,目前到是有好多解决方案,但本人水平太低,一个也没搞成功,于是就自己想出了这个方法:直接将 Traccar数据库中的 GPS坐标转换成高德(或百度)坐标,这样就直接解决了高德或百度地图轨迹偏移的问题,但还有个瑕疵是实时位置还是偏移的,但这不影响轨迹这个主要功能。下面我以群晖说一下步骤:
一、安装群晖运行环境
1、 在群晖的“套件中心”中安装“Python3”,用SSH登录到群晖安装pip3,再利用pip3安装Python3的支持库:pymysql、requests。
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
$ sudo python3 get-pip.py # 运行安装脚本,一定要用python3来运行啊
复制代码
安装完后提示pip3被安装到群晖的“/volume1/@appstore/py3k/usr/local/bin”目录中,不知道大家会不会也是这样。 2、进入pip3目录,然后在该目录下安装pymysql、requests。
$ cd /volume1/@appstore/py3k/usr/local/bin
$ sudo ./pip3 install pymysql
$ sudo ./pip3 install requests
复制代码
由于网速的原因,这 2 个安装包都试了 n 次才装好,大家有点耐心。
二、修改 Traccar数据库
1、将Traccar数据库转移到mysql服务上,相信大家已经这么做了,长期使用还是用mysql数据库靠谱,方法网上多,这里就不说了。
2、利用mysql管理工具“phpMyAdmin”在Traccar数据库的tc_positions表(我的表前缀是tc,你的可能不一样)中增加3个字段:前2个保存原始GPS坐标以后备用,第3个字段用来标记是否已转换成高德坐标用。
字段名 类型 默认值
latitude_gps double NULL
longitude_gps double NULL
gaode bit(1) 0
添加完后的表结构如下图:
3、 在mysql数据库中新建远程连接用户root,主机名要是“ % ” ,这样才能远程连接mysql,
我是新建的名为“ traccar_user ”用户,都一样,关键是主机名要是“ % ” ,建好后如下图:
三、编程
2、 将python程序文件复制到群晖的共享目录中,我的是public目录,在群晖中的绝对地址是“/volume1/public/gaode.py”,程序内容如下,程序里面要修改你申请的高德API调用key,还有你mysql数据库的连接参数。下载gaode.py文件:
3、 在SSH中运行该程序,对前期数据进行转换,根据你的历史数据量,用时较长哦。
$ python3 /volume1/public/gaode.py
复制代码
四、在群晖“计划任务”中新建一个定时(1分钟)运行该程序的任务,对数据库中的GPS坐标进行转换。
目前运行了 1天,还没出现什么问题,大家可以试试。百度地图也可利用这种方法哦。