0

我正在尝试确定使用更复杂的 Haversine 公式而不是更快的毕达哥拉斯公式是否使cpu 处理时间有意义,但是虽然似乎有一个非常一致的答案:“你可以使用毕达哥拉斯公式来获得可接受的结果在小距离上,但haversine更好”,我什至找不到关于“小距离”意味着什么的模糊定义。

此页面链接在非常热门问题的顶部答案中计算两个经纬度点之间的距离?声称:

如果性能是一个问题并且准确性不太重要,那么对于小距离毕达哥拉斯定理可以用于等角投影:*

精度有点复杂:沿子午线没有误差,否则它们取决于距离、方位和纬度,但对于许多用途来说足够小*

星号甚至说“有人愿意量化它们吗?”

但是这个答案 声称在 1000 公里处误差约为 0.1%(但它没有引用任何参考资料,只是个人观察),而对于 4 公里(即使假设由于距离更小而百分比没有缩小),这意味着低于公共接入 GPS 的 4m 误差在开放空间最佳 GPS 精度附近。

现在,我不知道普通乔在说“小距离”时会怎么想,但对我来说,4 公里绝对不是一个小距离(我想更多的是几十米),所以如果有人可以链接或计算一个错误表,就像在测量纬度和经度精度的答案中的那个?但我假设两极附近的误差会更高,所以可能选择 3 个具有代表性的纬度(5*、45* 和 85*?)并计算相对于十进制度数的误差。

当然,我也会很高兴得到一个给出“小距离”确切含义的答案。

4

1 回答 1

2

是的......在 10 米和 1 公里米处,使用简单的旧毕达哥拉斯定理,您将非常准确。没有人谈论这个真的很荒谬,特别是考虑到你节省了多少计算能力。

证明:取地球的顶部,因为这将是最坏的情况,顶部90英里的经度,所以它是一个中间有纵线相交的圆。 即使在地球两极附近,1公里平方也几乎是一个完美的正方形

请注意,当您放大到小至 1 公里、距两极仅 50 英里的区域时,最初看起来像一个带有弯曲顶部和底部边界的梯形,基本上看起来像一个近乎完美的矩形。换句话说,我们可以假设 1km 处的直线性,尤其是仅 10M 处。

现在,当然,两极附近的经度比赤道要短得多。例如,任何下巴松弛的乡巴佬都可以看到,当您靠近两极时,由纬线和经线组成的矩形变高,纵横比增加。事实上,经度距离的关系就是赤道乘以沿路径任何地方的纬度余弦。IE。在上图中,“L”(经度距离)和“l”(纬度距离)的度数相同:

LATcm = Latitude at *any* point along the path (because it's tiny compared to the earth)

L = l * cos(LATcm)

因此,我们可以使用毕达哥拉斯定理非常准确地计算距离为 1 公里或更短(甚至在两极附近),如下所示:

 Where: latitude1, longitude1 = polar coordinates of the start point

 and:   latitude2, longitude2 = polar coordinates of the end point

distance = sqrt((latitude2-latitude1)^2 + ((longitude2-longitude1)*cos(latitude1))^2) * 111,139*60

Where 111,139*60 (above) is the number of meters within one degree at the equator,
because we have to convert the result from equator degrees to meters.

关于这一点的一个巧妙之处在于,GPS 系统通常在大约 10m 或更短的距离内进行测量,这意味着您可以通过对这个方程的结果求和来在非常远的距离上获得非常准确的结果。与Haversine 公式一样准确。当您对总数求和时,超微小的错误不会放大,因为它们是一个百分比,与它们相加时保持不变。

然而现实情况是,Haversine 公式(非常准确)并不难,但相对而言,Haversine 将消耗你的处理器至少 3 倍以上,并且根据这个人的说法,计算密集度高达 31 倍https://blog。 mapbox.com/fast-geodesic-approximations-with-cheap-ruler-106f229ad016

对我来说,当我使用的系统(谷歌表格)无法为我提供执行半正弦公式所需的有效数字时,这个公式确实对我有用。

于 2021-09-23T04:07:34.677 回答