在 iPhone 上,我会得到用户的位置信息,例如:纬度为 39.470920,经度为 -0.373192;这是 A 点。
我需要用另一个 GPS 坐标点 B 创建一条线。然后,计算从 A 到 B 的直线与另一个点 C 的垂距。
问题是,我对角度的值感到困惑。我希望结果以米为单位。需要进行什么转换?最终计算公式会是什么样子?
在 iPhone 上,我会得到用户的位置信息,例如:纬度为 39.470920,经度为 -0.373192;这是 A 点。
我需要用另一个 GPS 坐标点 B 创建一条线。然后,计算从 A 到 B 的直线与另一个点 C 的垂距。
问题是,我对角度的值感到困惑。我希望结果以米为单位。需要进行什么转换?最终计算公式会是什么样子?
distanceFromLocation:
方法?它可以告诉你接收方和另一个 CLLocation 之间的精确距离。CLLocation *locationA = [[CLLocation alloc] initWithLatitude:12.123456 longitude:12.123456];
CLLocation *locationB = [[CLLocation alloc] initWithLatitude:21.654321 longitude:21.654321];
CLLocationDistance distanceInMeters = [locationA distanceFromLocation:locationB];
// CLLocation is aka double
[locationA release];
[locationB release];
就是这么简单。
Swift 3.0+
仅计算两个坐标之间的距离:
let distance = source.distance(from: destination)
let calculatedDistance = locations.reduce((0, locations[0])) { ($0.0 + $0.1.distance(from: $1), $1)}.0