2009-07-28 75 views
5

我想使用可靠的位置,即使在旧的iphone上。然而,许多读数(特别是来自手机信号塔)太不准确。我认为。CLLocation准确度有多准确?

当我绘制我的位置+精度半径(或查看谷歌地图应用程序)时,我注意到估计圆的中心通常接近我的物理位置。我猜如果我将“准确度”数字减半,我仍然会在99%的时间内出现在圈子里。

我相信这是一个概率性游戏 - 位置经理正试图提供99.99999%的正确时间的估计值,所以他们给出了一个有意识的宽裕。任何想法/信息?

回答

0

当您使用CoreLocation时,您将找回越来越好的“答案”。我注意到“最好”的答案几乎总是精确到100米以内,所以理论上你可能会减少你通常给的“缓冲区”。但真正知道的唯一方法就是测试测试测试。查找所有世代的iphones和ipod,并查看您获得的准确性类型以及您获得的结果类型。从很多方面来看,这取决于您制作的应用类型,但是如果您想根据用户的位置提供敏感或重要的信息,则应该等待框架为您提供几乎精确的位置。

+0

我愿意等待最好的位置。我关心的更多是“这个报道的位置究竟有多准确?”。我的观点是所有报道的精度(1000米,10米等)都偏高。 – BankStrong 2009-07-29 12:20:25

+0

你说得很对,原因很明显。 – TahoeWolverine 2009-07-29 13:07:20

2

CoreLocation框架为您提供了使用horizo​​ntalAccuracy/verticalAccuracy属性获取的每个CLLocation的圆的半径。您可以指定到CLLocationManager使用这些类型的一个desiredAccuracy属性:

kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers;

所以,你得到的通知,当你得到你想要的范围之内。也就是说,当你使用CLLocationManager时,第一个事件会尽快提供给你,然后处理事件就是满足你的条件的事件。