2010-10-15 64 views
1

在iPhone 4的室内。 WiFi禁用在Mapkit中检查用户的位置年龄 - MapKit用户位置的GPS准确性明显优于CLLocationManager?

运行LocateMe SDK示例或我自己的代码30-60秒会产生2294米的水平精度。对于手机塔三角测量来说很不准确但合理。查看其他可以反转地理编码或像Foursquare这样的位置的应用程序,显示出类似的缺乏准确性。

但是,如果我切换到使用Mapkit的应用程序中的另一个视图并检查/显示用户位置,它就会显示。我的意思是在地图上精确的房子级别,我将与WiFi级别位置或强大的GPS读取相关联。

因此,我认为Mapkit可能依赖于在我的设备上启用WiFi时得出的缓存位置读取。我在设置中关闭了位置服务。重新启动Map应用程序将地图从当前位置移开。退出重新启用的位置服务。再次打开地图应用程序 - 宾果右后卫与强大的位置阅读。

据我所知,位置服务是系统级单例,意味着与我的CLLocationManager实例共享相同的数据与MapKit。我能想到的唯一的事情就是MapKit会更加宽松地缓存位置,关闭位置服务并不会在map.app启动时清除它的缓存。

是否有人知道检查MapKit中用户位置的年龄的方法?我想进一步调查,即使它是我无法提供的无证电话或财产,我真的很想用它进行调试,以了解发生了什么。

感谢

回答

3

您可以按如下方式访问用户的位置由MKMapView使用时间戳:

[[[mapView userLocation] location] timestamp]; 

时间戳是一个NSDate,它告诉你什么时候确定这个位置。