《基于JT/T808协议的北斗终端数据采集》分为4节,分别是:
1. 开发背景
2. JT/T808协议介绍
3. 代码片段
4. 踩坑、填坑
本文为第四节:踩坑、填坑
大概踩了3个坑:
1. 经纬度坐标转换
我们的项目中北斗终端主要是上报经纬度坐标数据。经纬度坐标有几种,北斗终端上报的经纬度坐标数据如果直接在高德地图上展现,则位置会出现漂移情况,必须进行坐标转换。
在网上查了一些资料,也没有找到北斗终端到底是用的哪个坐标系、高德地图又是用的哪个坐标系,我们用了之前的历史数据做测试,发现北斗终端的坐标系可能是wgs85(经纬度坐标),而高德地图可能是gcj02(国测局坐标)。我们尝试用wgs85转gcj02处理北斗的坐标,转换后的坐标在高德地图上比较准确,目前已经运行了4个月时间,转换后的位置基本没有问题。相关转换的代码比较长,可以在网络上找到。
2. 数据积压
当前我们的版本将收到的坐标数据放入Redis中,从Redis中逐渐消耗插入到数据库中,现在情况是如果有2200个左右终端上线时,消耗速度跟不上数据产生的速度,就会造成Redis中的数据积压。终端上报上来的数据要经过比较长的时间才能更新到数据库中,导致前端不能及时看到终端的位置。