gpt4 book ai didi

iphone - 计算两个坐标之间的距离和路线

转载 作者:行者123 更新时间:2023-12-03 19:39:22 24 4
gpt4 key购买 nike

我有 2 个坐标,想做一些看似简单的事情。我想弄清楚,鉴于:

1) 坐标A2) Core Location提供的类(class)3)坐标B

以下内容:

1) A 和 B 之间的距离(当前可以使用 distanceFromLocation 来完成),所以就可以了。2)从A到B应该走的路线(与当前行驶的路线不同)

是否有一种简单的方法可以实现此目的,任何第三方或内置 API?

Apple 似乎没有提供此功能,但我可能是错的。

谢谢,〜阿拉什

编辑:

感谢您的快速回复,我相信可能存在一些困惑,我正在寻找路线(从a点到b点的方位角,以便0度=北,90度=东,类似于CLLocation 返回的路线值。不尝试计算实际的逐向方向。

最佳答案

我在 github 上有一些代码可以做到这一点。看看 headerInRadians here 。它基于余弦球面定律。我从 this page 上的算法导出了代码.

/*-------------------------------------------------------------------------
* Given two lat/lon points on earth, calculates the heading
* from lat1/lon1 to lat2/lon2.
*
* lat/lon params in radians
* result in radians
*-------------------------------------------------------------------------*/
double headingInRadians(double lat1, double lon1, double lat2, double lon2)
{
//-------------------------------------------------------------------------
// Algorithm found at http://www.movable-type.co.uk/scripts/latlong.html
//
// Spherical Law of Cosines
//
// Formula: θ = atan2( sin(Δlong) * cos(lat2),
// cos(lat1) * sin(lat2) − sin(lat1) * cos(lat2) * cos(Δlong) )
// JavaScript:
//
// var y = Math.sin(dLon) * Math.cos(lat2);
// var x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(dLon);
// var brng = Math.atan2(y, x).toDeg();
//-------------------------------------------------------------------------
double dLon = lon2 - lon1;
double y = sin(dLon) * cos(lat2);
double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon);

return atan2(y, x);
}

关于iphone - 计算两个坐标之间的距离和路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com