1

iPhone 4 上的室内。WiFi 已禁用

运行 LocateMe SDK 示例或我自己的代码 30-60 秒产生 2294 米的水平精度。对于蜂窝塔三角测量非常不准确但合理。查看其他执行反向地理编码或定位内容的应用程序(如 Foursquare)显示出类似的缺乏准确性。

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

所以我认为 Mapkit 可能依赖于在我的设备上启用 WiFi 时获得的缓存位置读取。我在设置中关闭了定位服务。重新启动地图应用程序将地图从我当前的位置移开。退出 重新启用定位服务。再次打开地图应用程序 - 使用强大的位置读取宾果游戏。

据我所知,位置服务是系统级单例,这意味着与 MapKit 共享与我的 CLLocationManager 实例相同的数据。我能想到的唯一一件事是该位置在 MapKit 上被更自由地缓存,即使 map.app 启动,关闭位置服务也不会清除它的缓存。

有人知道在 MapKit 中检查用户位置年龄的方法吗?我想进一步调查,即使它是一个未记录的调用或我无法附带的属性,我真的很想用它来调试以了解发生了什么。

谢谢

4

1 回答 1

3

您可以访问 a 使用的用户位置的时间戳,MKMapView如下所示:

[[[mapView userLocation] location] timestamp];

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

于 2010-10-19T14:50:45.890 回答