我正在使用CoreLocation框架计算两个坐标之间的距离,一个是用户的当前位置,另一个来自服务器,两个手机都显示差异大约。当手机彼此相邻时,距离为25米。我使用的是iPhone 4s和iPhone 5s,这是否与手机上安装的GPS模块的准确性有关或者我的实施有什么问题?
CLLocationDistance distance = [newLocation distanceFromLocation:userLocation];
答案 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
{
}
调查您获得的新位置的“horizontalAccuracy”(newLocation.horizontalAccuracy)。它是以米为单位的误差,坐标可能有。
/*
* horizontalAccuracy
*
* Discussion:
* Returns the horizontal accuracy of the location. Negative if the lateral location is invalid.
*/
@property(readonly, nonatomic) CLLocationAccuracy horizontalAccuracy;
希望它有所帮助。