获取具有已知起始 GPS、方位和距离(以英尺为单位)的新 GPS
Get New GPS with Known start GPS, bearing and distance in feet
总的来说,我是 Python 的新手,对 Javascript 的了解有限但已经过时了。我正在尝试使用 Python 完成一个小项目,但我被自己的理解所困。
我有一个以十进制度表示的 GPS 坐标作为起点(30.456025341663068,-86.41408883615411),从起点到预期终点的距离 英尺 (86 英尺)我有一个从起点到终点的角度(0 到 360)。鉴于这些值,我试图简单地 return 端点的十进制度数 GPS 坐标。
我找到了一个 StackExchange post,它似乎为我提供了一个使用 GeoPy 的可行选项,但我只是在尝试实现它时迷失了方向。有人可以协助完成这项工作吗? GeoPy 对我来说不是必需的,我只是根据另一个 StackExchange 问题中的答案导入它:
calculating a gps coordinate given a point, bearing and distance
也许你可以这样做:
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
不使用 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
总的来说,我是 Python 的新手,对 Javascript 的了解有限但已经过时了。我正在尝试使用 Python 完成一个小项目,但我被自己的理解所困。
我有一个以十进制度表示的 GPS 坐标作为起点(30.456025341663068,-86.41408883615411),从起点到预期终点的距离 英尺 (86 英尺)我有一个从起点到终点的角度(0 到 360)。鉴于这些值,我试图简单地 return 端点的十进制度数 GPS 坐标。
我找到了一个 StackExchange post,它似乎为我提供了一个使用 GeoPy 的可行选项,但我只是在尝试实现它时迷失了方向。有人可以协助完成这项工作吗? GeoPy 对我来说不是必需的,我只是根据另一个 StackExchange 问题中的答案导入它:
calculating a gps coordinate given a point, bearing and distance
也许你可以这样做:
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
不使用 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