2016-05-31 161 views
0

我试图计算从一点到另一点的距离。我能找到方法。使用MapKit计算经纬度之间的距离

CLLocationDistance dist = [loc distanceFromLocation:loc2]; 

但它是用直线计算距离。

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

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

+0

请参见本例https://www.shinobicontrols.com/blog/ios7-day-by-day-day-13-route-directions-with-mapkit – Rajesh

+0

最简单的例子HTTP ://www.devfright.com/mkdirections-tutorial/ – Rajesh

+0

谢谢我现在检查 – Jaff

回答

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

+0

感谢您的答复。我想通过道路计算两个位置之间的距离。 distanceFromLocation:将在两个位置之间绘制一条直线路径,并为此给出正确的距离? 可以说,如果我从地址作为家庭给予,并作为工作地址。我希望通过道路从家到工作之间的距离。通过公路我得到750米。但是如果我计算distanceFromLocation,我只能得到400米。 – Jaff

+0

是的..这将直接返回直线长度。更好地尝试用谷歌API来获得确切的距离 –

相关问题