【问题标题】:How we can get distance between two places's coordinate in ios我们如何在ios中获得两个地方坐标之间的距离
【发布时间】:2018-11-17 06:30:05
【问题描述】:

我正在制作一个基于谷歌地图的应用程序。我正在测量两个地方之间的距离。所以我试图通过预定义的方法“getDistanceFrom”找到两个地方坐标之间的距离,并尝试使用 googleDirectionAPi。 如果我使用预定义方法,我没有得到正确的距离。 如果我使用 googleDirectionApi,有时我没有得到响应。

所以请给我建议解决方案,我可以在每次点击 api 时找到响应,并且能够获得两个地方之间的距离?

【问题讨论】:

  • 您能添加一个包含所涉及类型的示例吗?另外,看看thisthis
  • 你要直线距离还是行车距离?
  • 它们是使用 Latlong 和路径距离公式的两种距离线性距离。线性是免费的...路径可以从 Google API 收费。
  • @ToineHeuvelmans 感谢您的回复

标签: ios objective-c


【解决方案1】:

您需要使用这些坐标获取相应坐标的 CLLocations,使用以下代码行

CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];
NSLog(@"Distance i meters: %f", [location1 distanceFromLocation:location2]);

【讨论】:

  • 请添加一些解释。
【解决方案2】:

您可以使用CoreLocation 轻松获取两个位置之间的距离。

CLLocation 的文档显示了这一点...https://developer.apple.com/documentation/corelocation/cllocation#

您可以创建一个CLLocation 喜欢...

CLLocation* location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1]

一旦你有两个位置,你就可以找到距离......

CLLocationDistance distance = [location1 distanceFromLocation: location2];

注意,文档显示 getDistanceFrom 在 iOS3.2 中已被弃用(大约 8 年前),所以不要使用它。

(请原谅任何语法错误,我已经有几年没有写任何 Objective-C 了):D

【讨论】:

  • 谢谢,但它将提供两个地方之间的直接距离。我正在使用 GoogleDirectionApi 获取正确的距离数据,但有时我没有获得距离或无效请求
  • @manoj 然后我建议根据您的问题回答 cmets。 :-)
【解决方案3】:

你需要发出一个HTTP请求,调用下面的URL,它会返回两点之间的距离。

https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=YOUR_API_KEY

要获取 API 密钥,请转到 google 开发者控制台。

【讨论】:

  • 感谢回复,但有时它不提供数据,我已尝试使用源和目标坐标和名称的完整地址
猜你喜欢
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
相关资源
最近更新 更多