我正在开发一个跟踪应用程序。该应用程序需要高精度的设备位置,即使用定位服务,并忽略水平精度差于20米的位置。
此外,我需要知道确定位置时的时间戳。我知道类
能否获取GPS时间?我不关心GPS信号不可用的情况。我只需要获取刚刚接收到的GPS位置(高精度位置)的GPS时间。
在stackoverflow上的其他问题中,建议使用以下代码片段:
CLLocation
没有明确声明是通过GPS确定的还是其他方式。但是,如果水平精度为20米或更好,则可以假定它是来自GPS的位置。此外,我需要知道确定位置时的时间戳。我知道类
CLLocation
中的属性timestamp
。但是,我想获取来自GPS的时间戳,而不是系统时间。能否获取GPS时间?我不关心GPS信号不可用的情况。我只需要获取刚刚接收到的GPS位置(高精度位置)的GPS时间。
在stackoverflow上的其他问题中,建议使用以下代码片段:
CLLocation* location = [[CLLocation alloc] initWithLatitude:(CLLocationDegrees) 0.0 longitude:(CLLocationDegrees) 0.0];
NSDate* now = location.timestamp;
有没有保证location.timestamp
比[NSDate date]
更与GPS相关的东西?
如果自动时间设置关闭,似乎不是这样。 如果我去“设置” ->“通用” ->“日期和时间”,并关闭“自动设置”,则属性timestamp
包含手动设置的系统时间。 因此,当启用自动时间设置时,它是否更与GPS相关?
timestamp
包含该手动设置的时间。因此,我猜测CLLocation
上的timestamp
只是设备的系统时间,与GPS卫星发送的时间无关。我只是想知道这是否真的正确,即使系统时间被设置为自动同步,这也是真的吗? - Cimlman