在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议计算系统时间和位置时间之间的差异。