如何在目标c中以英里为单位获得两个位置之间的距离?

时间:2011-10-16 16:16:34

标签: iphone objective-c mkmapview

如何使用mapkit框架的 distanceFromLocation 方法计算两英里之间的距离。

由于

3 个答案:

答案 0 :(得分:28)

这已在指标here中得到解答。现在你只需要将米转换为里程,即:

1 Meter = 0.000621371192 Miles 

1 Mile = 1609.344 Meters 

答案 1 :(得分:25)

尝试以下代码:

double latA = [currentlat floatValue];
double logA = [currentlong floatValue];

double latB = [toLat floatValue];
double logB = [toLong floatValue];

CLLocation *locA = [[CLLocation alloc] initWithLatitude:latA
                                              longitude:logA];

CLLocation *locB = [[CLLocation alloc] initWithLatitude:latB longitude:logB];
CLLocationDistance distance = [locA distanceFromLocation:locB];
NSLog(@"Calculated Miles %@", [NSString stringWithFormat:@"%.1fmi",(distance/1609.344)]);

答案 2 :(得分:3)

该功能在Apple的文档中似乎相当自我解释?它将给出用户位置和给定位置之间的距离,因此您必须创建一个新的CLLocation对象来告诉iPhone您想去哪里。

该函数以米为单位给出结果。要转换为英里,请乘以0.000621371192。更多信息见this thread.