高德地图发布最新开发SDK,解决GPS周数导致的定位时间异常
2023-05-08 15:05:41
高德地图今天发布最新消息,因为GPS周数异常导致偶尔定位时间出现错误,发布解决方案,查看下面详情。
一、问题原因
本次事件是由于GPS用来处理导航信号的周元素(Week Element)的方式引起的一个已知问题。GPS采用10比特定义域来对每个GPS时间信息中的周数进行编码,最多可以处理1024个周,这个期间被称为一个Epoch。在每个Epoch的结束时,接收机将周数复位为第0周,然后再次开始计数。GPS第一次周数清零时间为1999年8月22日,第二次清零为2019年4月7日。(注:因不同厂商GPS芯片内部处理逻辑不同,日期可能为1999年8月22日或其他错误日期)
二、影响产品
Android 定位SDK4.5.0及以下版本
三、影响点
1. 使用上述高德定位SDK获取到的定位类型为GPS定位的定位点时间,部分设备会返回错误日期。
2. 下游业务逻辑依赖此时间进行逻辑处理的,会导致判断异常。
四、解决方案
针对本次事件,在GPS周数翻转时刻,高德开放平台将采用系统时间和GPS对比的方法,如果二者相差超过一年,则时分秒取GPS时间,年月日取系统时间,以解决周数翻转带来的时间跳变问题使开发者内部用错时间。
五、建议修复方式
方案一:自主排查GPS定位时间的使用范围,当该时间参与业务逻辑时,需要添加如下兼容逻辑。
方案二:更新至新版Android 定位SDK(新版本已于4月2日发布)。