gpt4 book ai didi

python - 计算给定点、方位和距离的 gps 坐标

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:16 26 4
gpt4 key购买 nike

我有一个问题让我在某个项目中退缩了一段时间。

我基本上是想使用我编写的一些脚本绘制的 x、y 点来捕获多边形。lat、lon 是多边形的中心 GPS 线,我正在寻找它周围的多边形。

这是我在 python 中的代码的一部分:

def getcords(lat, lon, dr, bearing):
lat2=asin(sin(lat)*cos(dr)+cos(lat)*sin(dr)*cos(bearing))
lon2=lon+atan2(sin(bearing)*sin(dr)*cos(lat),cos(dr)-sin(lat)*sin(lat2))
return [lat2,lon2]

我的输入是这样的:

  • 纬度、经度 - 以十进制表示。
  • dr - 是以英里为单位的距离除以地球的半径(=3958.82) 计算出的角度
  • 方位 - 在 0-360 度之间。

但是对于输入:

getcorsds1(42.189275, -76.85823, 0.5/3958.82, 30)

我得到输出:[-1.3485899508698462, -76.8576637627568],但是 [42.2516666666667, -76.8097222222222] 是正确答案。

至于角距离,我简单地用距离(英里)除以地球半径(=3958.82)来计算。

有人吗?

最佳答案

geopy v2.0.0 (+公里而不是英里)

from geopy import Point                                                                                                                                                                       
from geopy.distance import geodesic

distKm = 1
lat1 = 35.68096477080332
lon1 = 139.76720809936523

print('center', lat1, lon1)
print('north', geodesic(kilometers=distKm).destination(Point(lat1, lon1), 0).format_decimal())
print('east', geodesic(kilometers=distKm).destination(Point(lat1, lon1), 90).format_decimal())
print('south', geodesic(kilometers=distKm).destination(Point(lat1, lon1), 180).format_decimal())
print('west', geodesic(kilometers=distKm).destination(Point(lat1, lon1), 270).format_decimal())

结果是

center 35.6809647708 139.767208099
north 35.6899775841, 139.767208099
east 35.680964264, 139.778254714
south 35.6719519439, 139.767208099
west 35.680964264, 139.756161485

关于python - 计算给定点、方位和距离的 gps 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com