添加到纬度或经度的距离

时间:2017-10-05 14:37:47

标签: database coordinates latitude-longitude coordinate

假设我的纬度为38.802610,经度为-116.419389,我希望能够增加距离,例如20英里。

到目前为止,我已经想出了如何做到这一点的粗略想法

  • 首先,计算出纬度为1°的英里数,例如它是30

  • 然后,除以它:

    • 1:30 = 0.033333
  • 将其添加到原始纬度以获得我的最大纬度:
    • 38.802610 + 0.033333 = 38.8355943
  • 将其减去我原来的纬度以获得我的最小纬度:
    • 38.802610 - 0.033333 = 38.769277

但这是有缺陷的,因为似乎没有经度的直接转换,因为我读过的计算方式各不相同。

最终,我需要能够找到:

  • 最大纬度(我目前的纬度+给定距离,例如20英里)
  • 最小纬度(我目前的纬度 - 给定距离,例如20英里)
  • 最大经度(我目前的经度+给定距离,例如20英里)
  • 最低经度(我目前的经度 - 给定距离,例如20英里)

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

线性距离(例如20英里或32186.88米)不能直接转换为纬度或经度的距离,因为地球不是平坦的。但是,有两个直接转换,你可以尝试投射一个点给定一个线性距离和方位角到另一个点。

方法1是使用Movable Type's "destination point given distance and bearing from start point"假设球形地球。基础方程在网站上描述。南北方向的纬度差异相同,东西方向的经度差异相同,因此您可以进行至少两次计算,以确定所有四种最小/最大和纬度/长度组合。 / p>

方法2假定球体地球(也称为旋转椭圆体),并使用{{3计算直接测地线它绑定了几种编程语言。纬度差异在北方和南方方向略有不同,但在东方和西方方向相同,因此您可以进行至少三次计算。或者只是假设北或南方向的差异大致相同,只做两次计算。该方法具有亚毫米级的精度。