Ios 获取GPS坐标的错误距离
这里是我正在使用的代码,它将不断地为用户的新位置添加距离。请告诉我我做错了什么,我得到的距离是米。结果总是这样 如果坐标之间的原始距离是10.97米,那么对我来说只有1.097米Ios 获取GPS坐标的错误距离,ios,xcode,gps,cllocationdistance,cllocationcoordinate2d,Ios,Xcode,Gps,Cllocationdistance,Cllocationcoordinate2d,这里是我正在使用的代码,它将不断地为用户的新位置添加距离。请告诉我我做错了什么,我得到的距离是米。结果总是这样 如果坐标之间的原始距离是10.97米,那么对我来说只有1.097米 任何帮助都是可观的我正在使用核心定位方法。 例如,此方法将查找位置数组和单个位置之间的最短距离: double lat1 = coordinate1.latitude * M_1_PI/180; double lat2 = coordinate2.latitude * M_1_PI/180; double lon1 =
任何帮助都是可观的我正在使用核心定位方法。 例如,此方法将查找位置数组和单个位置之间的最短距离:
double lat1 = coordinate1.latitude * M_1_PI/180;
double lat2 = coordinate2.latitude * M_1_PI/180;
double lon1 = coordinate1.longitude * M_1_PI/180;
double lon2 = coordinate2.longitude * M_1_PI/180;
double r = 6371;
double dlat = lat2 - lat1;
double dlon = lon2 - lon1;
double a = sin(dlat/2) * sin(dlat/2) + cos(lat1) * cos(lat2) * sin(dlon/2) * sin(dlon/2);
double c = 2 * atan2(sqrt(a), sqrt(1-a));
distance = distance + (r * c * 1000);
这并不意味着semse m_1_pi=1/pi 将经度除以度/(180*pi)
它应该是度*π/180或度*μπ/180.0会给你弧度那是什么
APRGPSLocation
?对不起,这是我自己的课。您可以改为使用CLLocation类。我会编辑答案我已经尝试了上述方法,但我没有得到至少一个近似值。谢谢你的回复
+ (NSInteger)distanceFrom:(NSArray*)locations toLocation:(CLLocation*)myLocation
{
if(!locations || !locations.count) return -1;
NSMutableArray *distance = [NSMutableArray new];
for (CLLocation *loc in locations)
{
float latitudeB = loc.coordinate.latitude;
float longitudeB = loc.coordinate.longitude;
CLLocation *locB = [[CLLocation alloc] initWithLatitude:latitudeB longitude:longitudeB];
CLLocationDistance distanceBetweenAB = [myLocation distanceFromLocation:locB];
[distance addObject:@(distanceBetweenAB)];
}
int distInt = [[distance valueForKeyPath:@"@min.intValue"] intValue];;
return distInt;
}