使用CLLocation计算两个坐标之间的距离在两部手机上是不同的?

时间:2016-03-31 07:13:04

标签: ios coordinates core-location

我正在使用CoreLocation框架计算两个坐标之间的距离,一个是用户的当前位置,另一个来自服务器,两个手机都显示差异大约。当手机彼此相邻时,距离为25米。我使用的是iPhone 4s和iPhone 5s,这是否与手机上安装的GPS模块的准确性有关或者我的实施有什么问题?

CLLocationDistance distance = [newLocation distanceFromLocation:userLocation];

1 个答案:

答案 0 :(得分:1)

手持GPS或智能手机接收器都不能为您提供准确的位置。充其量只能达到10到15英尺(3到5米)的精度。如果您在树下或被高楼环绕,那么您可以预期精确度为20到30英尺(6到10米)甚至更差。只有测量员使用的专业GPS设备可以精确到一英寸(2厘米)以下 https://support.groundspeak.com/index.php?pg=kb.page&id=673

准确性还取决于您用于手机的蜂窝/ wifi网络的类型。我已经体验到,在wifi网络上获得的位置的准确性远远高于您在蜂窝数据上获得的位置。

当您在以下CLLocationManager委托中获得位置更新时: -

- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation
{
}

调查您获得的新位置的“horizo​​ntalAccuracy”(newLocation.horizo​​ntalAccuracy)。它是以米为单位的误差,坐标可能有。

/*
 *  horizontalAccuracy
 *  
 *  Discussion:
 *    Returns the horizontal accuracy of the location. Negative if the lateral location is invalid.
 */
@property(readonly, nonatomic) CLLocationAccuracy horizontalAccuracy;

希望它有所帮助。