GPS轨迹优化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
G P S轨迹优化算法
公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-
运动公会:G P S轨迹优化算法当前问题描述:
1、定位精度:控制在<50m,而非根据具体场景(机型、场地)实时控制;
2、首点(即轨迹第一个点)存在漂移现象;
3、防作弊机制放在了服务端,导致用户跑步下来,看到的跑步数据与提
交后服务端处理后的数据,不一致;
定位点(LocationPoint)的数据解析:
GPS信号强度:signalLevel;(good/bad/unknown)
定位精度:accuracy;(m)
经纬度:位置点
时间:ms(毫秒)客户端计算
方向:bearing;(度)
速度:speed;(m/s)
当前跑步轨迹定位点,只使用了前四个数据(GPS信号、定位精度、经纬度、时间);
而进一步,利用“方向”可进一步确定是否“拐点”;利用“速度”可进一步判断运动状态(相对静止、运动中(相对均速、相对加速、相对减速))。
常规运动速度数据:
走路
普通人5km/h 或
1~2m/s 体质较
弱
3km/h 或
<1m/s
跑步
普通人均速:10km/h 受过训
练
均速:
20~30km/h
高速:8~9m/s高速:10m/s
解决思路:
定位精度问题
思路一:
取一定数量的定位点,根据这些点的精度分布情况,确定精度最大阈值;
理论上可行,但跑步过程中,周边场地情况发生实时变化,之前确定的最大阈值是否足够合理,值得商榷;
思路二:
1、在不同的地点(居民区、商业区、空旷地带),去采集定位点的精
度,根据这些精度的反馈,确定一阈值;
2、在运动过程中,将用户设备的精度数据(设备类型+android版本+
精度)实时上传服务器,后期根据服务器保存的精度数据,看情况是否调整之前确定的精度阈值;
首点确认问题
连续三个点为非拐点且三个点均合法,则第一个点为首点,否则去掉第一个点,继续下面三个点进行下一步计算,直到找到首点。
首点合法的依据:
1、三个点在精度阈值范围内;
2、三个点的方向相对一致,即不存在拐点;
3、根据点与点之间的距离和时间间隔,计算其运行速度,该速度在
合理的跑步速度范围之内;
4、连续三个点,满足以上条件,则第一个点为首点;
5、否则继续去掉第一个点,继续下面三个点进行计算,直至满足前
三个条件为止,确定首点;
提交数据不一致
将防作弊机制放在客户端,服务端只记录原始数据,不做进一步的数据处理。
防作弊手段从以下几个方面着手:
1、过滤定位点漂移;
2、过滤定位点非法(结合速度);
3、加入计步,防止骑车/乘车方式作弊;(下一阶段处理..)
此次,主要结合前面2点(定位点漂移或非法),进行定位点“过滤/防作弊”处理。
判断运动中轨迹点合法的依据,具体如下:
1、定位点PointNew的精度在精度阈值范围内;
2、定位点PointNew的当前速度(Vn)在“运动速度阈值”范围之内,
否则非法速度次数+1;
3、进一步判断PointNew和上一定位点PointLast的距离与时间间
隔,计算其行进速度,在“运动速度阈值”范围内;
4、上传数据时,建议:将该定位点Point的速度和方向,一并上
传;(需与服务端确认)
5、结束任务时,根据实际运动距离过程中所记录的非法速度次数是
否达到某一特定值(如100m超过5次)或平均速度超过了“运动速度阈值”,则有理由认为该次跑步存在刷公里嫌疑,建议不计入
总公里。
说明:关于速度的进一步判断,可结合前面3个点的速度和时间,来综合判断,是否当前处于均速状态/加速状态/减速状态,从而判定新的定位点,是否合理。由于缺乏常规的加速/减速运动数据,暂不处理。