GPS 距离:毕达哥拉斯在不同尺度下的等距柱状逼近与 Haversine 公式误差?

GPS distance: Pythagora's on an Equirectangular approximation vs Haversine fomula errors at different scales?

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

This page, linked in the top answer to the very popular question Calculate distance between two latitude-longitude points? 声明:

If performance is an issue and accuracy less important, for small distances Pythagoras’ theorem can be used on an equi­rectangular projec­tion:*

Accuracy is somewhat complex: along meridians there are no errors, otherwise they depend on distance, bearing, and latitude, but are small enough for many purposes*

星号甚至说 “有人关心量化它们吗?”

但是this answer声称在1000km(但没有引用任何参考,只是个人观察)和4km(即使假设 % 不会因距离更小而缩小),这也意味着误差在 4 米以下,对于 public 访问 GPS 是在开放 space 最佳 gps 精度附近。

现在,我不知道当他们说“小距离”时,普通人会怎么想,但对我来说,4 公里绝对不是一个小距离(- 我想的更多是几十米),所以如果有人可以 link 或计算 table 的误差,就像 Measuring accuracy of latitude and longitude? 的这个答案中的误差一样,我将不胜感激,但我认为误差会在两极附近更高,所以也许选择 3代表纬度(5*、45* 和 85*?)并计算相对于小数位的误差。

当然,我也很高兴能给出“小距离”的确切含义的答案。

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

证明: 以地球的顶部为例,因为这将是最坏的情况,顶部经度为 90 英里,因此它是一个圆,经线在中间相交。

请注意,当您放大到距离两极仅 50 英里的小至 1 公里的区域时,最初看起来像具有弯曲顶部和底部边界的梯形,实际上看起来像一个近乎完美的矩形。换句话说,我们可以假设 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.

对我来说,当我使用的系统(Google 张)无法提供计算半正弦公式所需的有效数字时,这个公式对我很有用。