【问题标题】:Calculate distance between latitude and longitude using MapKit使用 MapKit 计算经纬度之间的距离
【发布时间】:2016-05-31 05:57:05
【问题描述】:

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

CLLocationDistance dist = [loc distanceFromLocation:loc2];

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

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

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

【问题讨论】:

标签: ios objective-c xcode ios9 mapkit


【解决方案1】:

看看这个答案:

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是你需要计算它们之间距离的两个Annotation。

参考:Distance bw two Latitude & Longitude

【讨论】:

  • 感谢您的回复。我想通过道路计算两个位置之间的距离。 distanceFromLocation: 将在两个位置之间绘制一条直线路径并给出该距离对吗?可以说如果我从地址作为家庭地址并将地址作为工作地址。我想要从 Home 到 Work 之间的距离。在公路上,我得到 750 米。但如果我计算 distanceFromLocation 我只能得到 400 米。
  • Yes.. 这将返回直接直线长度。最好使用 google Api 来获得准确的距离
猜你喜欢
  • 1970-01-01
  • 2021-09-05
  • 2011-04-11
  • 2012-10-13
  • 2012-01-26
  • 2018-06-11
  • 2011-04-20
  • 2017-12-13
  • 1970-01-01
相关资源
最近更新 更多