我正在将位置的坐标与用户的当前坐标进行比较。输出的距离如下:6056609.511004132946254686
我不确定这是什么测量。我希望最终的测量距离以km为单位。
// 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];
答案 0 :(得分:4)
对文档的粗略阅读将使这一点清楚。如果打开快速帮助检查器(在Xcode 4.5中,请按命令 + 选项 + 2 或从中选择“显示快速帮助检查器”) “查看”菜单中的“实用程序”部分,然后单击代码中的distanceFromLocation
,它会为您提供此方法的文档,这清楚地表明它以米为单位。或者,当您将鼠标移动到代码中的distanceFromLocation
方法上时,按住选项键,然后单击(同时按住选项键)我会看到一个在线帮助popover。
在此处发布问题之前,您应该查看Apple文档。
答案 1 :(得分:2)
以米为单位,来自Apple文档:
CLLocationDistance
距离现有位置的距离测量值(以米为单位)。
typedef double CLLocationDistance
可用性适用于iOS 2.0及更高版本。在CLLocation.h中声明
答案 2 :(得分:2)
如Apple doc中所述,distanceFromLocation函数以米为单位返回值。所以你要做的就是将米转换为km;)
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;