【问题标题】:Given the lat/lon of 2 close points on earth (<10m), How do I calculate the distance in metres?给定地球上 2 个近距离点的纬度/经度(<10m),我如何计算以米为单位的距离?
【发布时间】:2011-03-03 12:44:15
【问题描述】:

我有地球上 2 个点的纬度/经度。它们非常靠近,

我知道可以正确执行此操作的工具(PostGIS 等),但是我只是在做一个粗略和准备好的类型,而且我可以接受低准确度。在这么小的尺寸上,1% 的差异只有 10 厘米,这对我来说很好。我在股票 python 中这样做。我可以接受标准欧几里德距离。

【问题讨论】:

  • ANeves - 我将为数千个点组合执行此操作。手动将它们输入谷歌需要很长时间

标签: algorithm geometry geospatial distance


【解决方案1】:

对于如此低的精度,请查看earth distance 文章中的毕达哥拉斯公式。

但是,还要阅读一些解释 here(例如,如果坐标不是笛卡尔坐标,则使用 Haversine 公式在计算上可能会更便宜)。

【讨论】:

  • 良好的链接。维基百科“具有平行子午线的毕达哥拉斯公式”中未说明的假设是 sin(x) = x 对于小 x(以弧度表示的角度)并且地球具有恒定的半径。
  • @MZB,我猜,但它给出了最大误差,即它假设 x 太小以至于距离小于 20 公里。对于 10 m,相对误差更小。
  • 只是认为值得指出 Wiki 公式的来源。对于这么小的 x,绝对是最简单的方法。
【解决方案2】:

site like this 获取纬度和经度的平面长度,并按照您的建议计算笛卡尔坐标中的距离。对于小至 10m 的距离,您的计算中的不准确之处将丢失在结果的最低有效数字中。

【讨论】:

  • 我想以编程方式为数千个点执行此操作,因此我无法一直手动检查外部站点。
【解决方案3】:

我建议使用Haversine Formula。这是我之前引用过的 Javascript 实现:http://www.movable-type.co.uk/scripts/latlong.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2011-08-28
    • 2011-05-24
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2015-10-19
    • 2015-10-18
    相关资源
    最近更新 更多