在iOS上从GPS获取时间

我正在研究一个示踪应用程序。 该应用程序需要高精度地了解设备的位置,即使用位置服务,忽略水平精度不超过20米的位置。 如果通过GPS确定CLLocation不明确声明。 但是,如果水平精度为20米或更好,则可以假定它是来自GPS的位置。

此外,我需要知道位置确定时的时间戳。 我知道类CLLocation的属性timestamp 。 但是,我想从GPS获取时间戳,而不是系统时间。

是否有可能获得GPS时间? GPS信号不可用时,我不在乎情况。 我只需要获得我刚刚收到的GPS位置(高精度位置)的GPS时间。

在其他关于stackoverflow的问题,build议使用下面的代码片段:

 CLLocation* location = [[CLLocation alloc] initWithLatitude:(CLLocationDegrees) 0.0 longitude:(CLLocationDegrees) 0.0]; NSDate* now = location.timestamp; 

有没有任何保证location.timestamp比GPS更相关的东西比[NSDate date]

如果自动时间设定被closures,似乎不是真的。 如果我转到设置 – >常规 – >date和时间,并closures“自动设置”,属性timestamp包含手动设置的系统时间。 那么至less在开启自动时间设定的时候,它与GPS有关呢?

我认为时间戳是设备端计算出来的,很可能与卫星的时间戳无关。
CoreLocation是完全不透明的,它的工作,这听起来不太可能从苹果让你访问像GPS卫星时间戳原始数据…

 However, I would like to get the timestamp from GPS, not the system time. 

你不能得到GPS芯片提供的时间戳。

如果用户人为设置了错误的时间,ios也会在其位置上使用此偏移量。

 I just need to get the GPS time for a GPS location (location with high accuracy) I have just received. 

如果设备设置为自动设置系统时间,则gps位置时间应该是精确的。

 So is it more-GPS related at least when automatic time setting is turned on? 

 Is there any guarantee that location.timestamp is something more GPS-related than [NSDate date]? 

它总是更相关,[NSDatedate]是当前系统时间,而location.time是与位置logging时间有关的时间。 这可以抵消如0.6秒,甚至更多的开始后第一次修复。

为了检查位置是否是最新的,Applebuild议计算系统时间和位置时间之间的差异。