使用MapKit计算纬度和经度之间的距离

时间:2016-05-31 05:57:06

标签: ios objective-c xcode ios9 mapkit

我试图计算从一个点到另一个点的距离。我能找到方法。

CLLocationDistance dist = [loc distanceFromLocation:loc2];

但它做的是直线计算距离。

我想要的是通过公路计算距离。

例如:让我们说如果我从地址作为家庭和作为工作地址。我希望通过公路到达工作之间的距离。通过公路我得750米。但是,如果我通过distanceFromLocation方法计算,我只得到400米。 有人可以用一个例子来帮助我计算距离。

1 个答案:

答案 0 :(得分:0)

看看这个答案:

CLLocationCoordinate2D pointACoordinate = [pointAAnnotation coordinate];
CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:pointACoordinate.latitude longitude:pointACoordinate.longitude];  

CLLocationCoordinate2D pointBCoordinate = [pointBAnnotation coordinate];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:pointBCoordinate.latitude longitude:pointBCoordinate.longitude];  

float distanceMeters = [pointALocation distanceFromLocation:pointBLocation];
float distanceMiles = (distanceMeters / 1609.344);   

这里是pointAAnnotation& pointBAnnotation是计算它们之间距离所需的两个注释。

参考:Distance bw two Latitude & Longitude