2

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

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

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

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

非常感谢你的帮助。

4

2 回答 2

1

如需更准确的方法,请在链接中使用此公式

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

请找到“目标点距起点的距离和方位角”部分。在您的代码中应用它

于 2013-06-06T11:36:19.343 回答
0

已经编写了 C 代码来做到这一点。它发布在github上。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);
于 2013-06-06T14:15:29.887 回答