核心位置 - iphone sdk中的准确性问题

时间:2011-05-19 17:28:04

标签: objective-c iphone core-location

我的应用程序安装在两个设备内,位于50米范围内。应用程序在2000英尺内找到附近的在线用户。但我无法找到另一个在我附近的用户(在50米范围内)并且肯定在线,当检查时我发现设备位置是这样的,他们的差异超过2000英尺。那可能是什么原因?为什么两个用户在彼此附近没有通过2000英尺范围内的应用找到彼此。我使用了重定位框架来确定用户的当前位置。并设定其最佳准确度。用于计算用户之间距离的公式也是标准的

所以这里的问题是关于核心位置的准确性。如何解决这类问题??为什么即使设置了最佳准确度,设备也没有显示正确的位置。

2 个答案:

答案 0 :(得分:2)

即使您在外面可以清楚地看到GPS卫星,也可以在核心位置10到30秒内精确定位您的位置。水平精度通常从1750米左右开始,最终缩小到5米以内。

您可以尝试向用户提供一些视觉指示,表明该应用仍在尝试找到他们的手机,并等待您准确读取。

此外,如果您使用的是iPhone 4,则可以使用另一种称为kCLLocationAccuracyBestForNavigation的准确度,这显然比kCLLocationAccuracyBest准确得多。

答案 1 :(得分:1)

听起来设备没有获得GPS锁定。你在里面运行应用程序吗?

您可以通过检查返回位置的水平精度来检查iPhone设法获得的准确度:

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
    fromLocation:(CLLocation *)oldLocation
{
    NSLog("%f", newLocation.horizontalAccuracy);
}

任何太大(数百米),你知道你还没有GPS锁。