我知道如何获得两个CLLocations之间的距离有很多问题(和答案)。但是,我没有找到一个关于如何反过来这样做的提示。
以下是具体情况:我有一个CLLocation,一个距离(比方说200米)和一个方向。现在我需要知道如何计算距离第一个位置200米(指定方向)的位置。我不知道这个方向的最佳格式是什么。也许最好的是度数(北= 0,东= 90,南= 180,西= 270)。
简而言之,我需要一种可以定义为
的方法-(CLLocation*)locationWithDistance:(int)meters inDirection:(int)degrees fromLocation:(CLLocation*)origin;
非常感谢你的帮助。
答案 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);