按距离其他位置的距离计算位置

时间:2013-06-06 11:13:30

标签: ios core-location

我知道如何获得两个CLLocations之间的距离有很多问题(和答案)。但是,我没有找到一个关于如何反过来这样做的提示。

以下是具体情况:我有一个CLLocation,一个距离(比方说200米)和一个方向。现在我需要知道如何计算距离第一个位置200米(指定方向)的位置。我不知道这个方向的最佳格式是什么。也许最好的是度数(北= 0,东= 90,南= 180,西= 270)。

简而言之,我需要一种可以定义为

的方法
-(CLLocation*)locationWithDistance:(int)meters inDirection:(int)degrees fromLocation:(CLLocation*)origin;

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

要获得更准确的方法,请在链接中使用此公式

http://www.movable-type.co.uk/scripts/latlong.html

请找到“目的地点给定距离和从起点开始的方位”。将其应用于您的代码

答案 1 :(得分:0)

已经编写了C代码来完成这项工作。它发布在github here上。 UtilitiesGeo.c / .h文件中有一个度和弧度版本的函数。它可以用Objective-C风格编写,但我希望它可以移植到任何基于C的项目。

/*-------------------------------------------------------------------------
* Given a starting lat/lon point on earth, distance (in meters)
* and bearing, calculates destination coordinates lat2/lon2.
*
* all params in degrees
*-------------------------------------------------------------------------*/
void destCoordsInDegrees(double lat1, double lon1,
                         double distanceMeters, double bearing,
                         double* lat2, double* lon2);