-1

我正在将某个位置的坐标与用户的当前坐标进行比较。距离输出如下:6056609.511004132946254686

我不确定这是什么测量值。我希望最终测量的距离以公里为单位。

 // location of deal
CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];

// user's current location
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];
4

3 回答 3

4

最粗略的阅读文档就会清楚地说明这一点。如果您打开快速帮助检查器(在 Xcode 4.5 中,按command++或从“查看”菜单的“实用程序”部分中选择“显示快速帮助检查器” option2,然后distanceFromLocation在您的代码中单击,它会为您提供该方法的文档就在那里,清楚地表明它以米为单位。或者,在option将鼠标移到distanceFromLocation代码中的方法上时按住键,然后单击(同时按住option键),您将看到一个在线帮助弹出框。

在您在这里发布问题之前,您确实应该查看 Apple 文档。

于 2012-12-27T16:20:56.210 回答
2

以米为单位,来自 Apple 文档:

CLLocationDistance

距现有位置的距离测量(以米为单位)。

typedef double CLLocationDistance

可用性 适用于 iOS 2.0 及更高版本。在 CLLocation.h 中声明

于 2012-12-27T16:02:31.163 回答
2

Apple 文档中所述,distanceFromLocation 函数以米为单位返回值。因此,您要做的就是将米转换为公里;)

CLLocation *locA = [[CLLocation alloc] initWithLatitude:latNum longitude:lngNum];
CLLocation *locB = [[CLLocation alloc] initWithLatitude:currentLatitude longitude:currentLongitude];

//Compute distance in meters
CLLocationDistance distanceToDeal = [locA distanceFromLocation:locB];

//Convert meters to km
double km = distanceToDeal/1000;
于 2012-12-27T16:06:06.853 回答