【问题标题】:GPS distance: Pythagora's on an Equirectangular approximation vs Haversine fomula errors at different scales?GPS 距离:毕达哥拉在 Equirectangular 近似上与不同尺度下的 Haversine 公式误差?
【发布时间】:2021-06-17 08:17:29
【问题描述】:

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

This page,链接在热门问题Calculate distance between two latitude-longitude points? 的顶部答案中声称:

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

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

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

但是this answer 声称误差在 1000 公里处约为 0.1%(但它没有引用任何参考资料,只是个人观察)和 4 公里(即使假设 % 没有由于距离更小而缩小)这意味着误差在 4m 以下,对于公共访问而言,GPS 大约是开放空间的最佳 GPS 精度。

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

当然,我也很乐意得到一个准确解释“小距离”的答案。

【问题讨论】:

    标签: gps distance haversine pythagorean


    【解决方案1】:

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

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

    请注意,当您放大到小至 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.

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

    【讨论】:

    • FWIW,此资源提供了有关 20 公里可能出现的错误的更多信息:小于 30 米(100 英尺)的纬度小于 70 度,小于 20 米(66 英尺)的纬度小于50 度,小于 9 米(30 英尺)的纬度小于 30 度。 - cs.nyu.edu/visual/home/proj/tiger/gisfaq.html
    • 抱歉错过了你的答案(我不知何故没有得到通知),这几乎是我想知道的(几乎完全正确,但我可以从这些值中推断出来),错误是非常小,在任何真正的 GPS 跟踪情况下(而不是在地图上随机选择点),它是微不足道的,因为没有任何生命以 >20km/s 的速度移动。感谢您对此进行调查!
    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多