Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取GPS坐标的错误距离_Ios_Xcode_Gps_Cllocationdistance_Cllocationcoordinate2d - Fatal编程技术网

Ios 获取GPS坐标的错误距离

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 =

这里是我正在使用的代码,它将不断地为用户的新位置添加距离。请告诉我我做错了什么,我得到的距离是米。结果总是这样

如果坐标之间的原始距离是10.97米,那么对我来说只有1.097米
任何帮助都是可观的

我正在使用核心定位方法。 例如,此方法将查找位置数组和单个位置之间的最短距离:

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;
}