【问题标题】:Get New GPS with Known start GPS, bearing and distance in feet使用已知起始 GPS、方位角和距离(以英尺为单位)获取新的 GPS
【发布时间】:2022-02-17 00:11:27
【问题描述】:

总的来说,我是 Python 的新手,对 Javascript 的了解有限但老了。我正在尝试使用 Python 完成一个小项目,但我一直坚持自己的理解。

我有一个十进制度的 GPS 坐标作为起点(30.456025341663068,-86.41408883615411),从起点到预期终点的距离 英尺(86 英尺),我有一个方位从起点到终点的度数(0 到 360)。鉴于这些值,我试图简单地返回端点的十进制度数的 GPS 坐标。

我发现一篇 StackExchange 帖子似乎为我提供了使用 GeoPy 的可行选项,但我只是在尝试实施它时迷失了方向。有人可以协助如何做到这一点吗? GeoPy 对我来说不是必需品,我只是根据另一个 StackExchange 问题中的答案导入了它:

calculating a gps coordinate given a point, bearing and distance

【问题讨论】:

    标签: python geopy


    【解决方案1】:

    也许你可以这样做:

    import geopy
    import geopy.distance
    
    lat = 30.456025341663068
    lon = -86.41408883615411
    distance_ft = 86
    bearing = 0
    
    start_point = geopy.Point(lat, lon)
    end_point = geopy.distance.geodesic(feet=distance_ft).destination(start_point, bearing)
    
    print(end_point.latitude, end_point.longitude)
    

    这应该输出如下内容:

    30.456261790886277 -86.41408883615411
    

    然后您还可以使用测地线方法计算点之间的距离:

    print(geopy.distance.geodesic(start_point, end_point).feet)
    

    得到类似的东西:

    86.0000000020017
    

    【讨论】:

    • 谢谢,我实际上是在大约 30 秒前发现的,但我的发现与您的相同,所以向您提供道具,感谢您的正确答案!
    【解决方案2】:

    不使用 geopy 的替代答案

    from pyproj import Geod
    g = Geod(ellps="WGS84")
    
    lat = 30.456025341663068
    long = -86.41408883615411
    
    feet_in_meters = .3048
    distance_in_feet = 86
    distance_in_meters = distance_in_feet * feet_in_meters
    
    long_destination, lat_destination, azi_back = g.fwd(lons=long, lats=lat, az=0, dist=distance_in_meters)
    

    哪个print(lat_destination, long_destination)

    30.456261790886273 -86.41408883615411
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-29
      • 2012-05-18
      • 2015-02-17
      • 2014-11-26
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多