【问题标题】:How can I find lat long of a point with a given lat long value and distance如何找到具有给定 lat long 值和距离的点的 lat long
【发布时间】:2011-03-03 18:27:22
【问题描述】:

我有一个点 A (52.132781727864, -106,63492619991302)。从 A 点我想得到 B 点的经纬度,它在 A 点以南 5 公里处。

如何获得 B 点的经纬度?我正在用 Java 编写代码。

编辑:如果该点位于东南部,我该怎么办?

【问题讨论】:

  • 我认为 ilya 给出了正确的答案(我假设公式是正确的)。要了解该理论,您可以在网上搜索地理坐标系

标签: java geocoding


【解决方案1】:

5km 角度 = ((5 / (6371 * pi)) * 180) = 0.0449660803。这个数字应该从纬度中减去。经度保持不变。

PS。感谢 Carlos Heuberger 的更正。

【讨论】:

  • 非常感谢。我去看看。但是你能再提一件事吗?如果该点位于东南方,那我该怎么办?
  • 不正确,即只有大约 1.5 公里。 1个纬度是111.12公里,要减去`5 / 111.12 = 0.04499640'
  • 假设 GPS (WGS84) 在 52.132781727864° N 附近,纬度每变化 1° 的表面距离为 closer 到 111.2699 km/°。
【解决方案2】:
【解决方案3】:

我强烈建议将GeoTools 用于地球表面几何形状,因为它会将地球视为椭球体(地球不是一个完美的球体)。特别是查看GeodeticCalculator,您在其中设置了起始位置和方向(方位角和距离),然后得到目标位置。

【讨论】:

    【解决方案4】:

    将问题扩展到“如何找到具有给定纬度值、距离和方向的点的经度”,这里是较短距离(小于约 1000 公里)的近似值/p>

    d = dist / 111.12      (1)
    dlat = d * cos(dir)
    latm = lat1 + dlat / 2
    dlon = d * sin(dir) / cos(latm)
    
    lat2 = lat1 + dlat
    lon2 = lon1 + dlon
    

    地点:
    - lat1lon1 - 起始坐标(北和东为正) - dist - 以公里为单位的距离
    - dir - 起始方向(2)
    - lat2lon2 - 结果坐标

    (1)假设球形地球模型
    (2) dir = 135° 东南部


    基于Astrosail - Mittelbreitenverfahren

    【讨论】:

      【解决方案5】:

      我曾经遇到过同样的问题。由于在我的情况下,原始数据在 UTM 中,因此产品只需要在给定的区域中工作,并且要添加的距离不是很大,我所要做的就是计算正弦和余弦,并将东和北添加到初始点

      【讨论】:

        猜你喜欢
        • 2013-11-10
        • 1970-01-01
        • 2021-04-18
        • 2018-03-20
        • 2013-03-21
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多