我们如何在ios中获得两个地方坐标之间的距离

时间:2018-06-07 11:02:07

标签: ios objective-c

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

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

3 个答案:

答案 0 :(得分:1)

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

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

您可以创建CLLocation之类的...

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

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

CLLocationDistance distance = [location1 distanceFromLocation: location2];

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

(原谅语法中的任何错误,自从我编写任何Objective-C以来已经过了几年):D

答案 1 :(得分:0)

您需要使用这些坐标使用以下代码行获取相应坐标的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 :(得分:-1)

您需要发出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开发者控制台。