gpt4 book ai didi

python - 两点之间的方位

转载 作者:太空狗 更新时间:2023-10-30 00:41:54 27 4
gpt4 key购买 nike

我一直在使用 geopy 包,它做得很好,但是我得到的一些结果不一致或者位移相对较大,我怀疑问题出在我的轴承计算上:

def gb(x,y,center_x,center_y):
dx=x-center_x
dy=y-center_y
if ((dy>=0)and((dx>0)or(dx<0))):
return math.degrees(math.atan2(dy,dx))
elif (dy<=0)and((dx>0)or (dx<0)):
return (math.degrees(math.atan2(dy,dx))+360)
else:
return (math.degrees(math.atan2(dy,dx))+360)%360

我需要计算方位,s.t. center_x 和 center_y 是枢轴。之后我使用 geopy 对 gps 坐标进行逆向工程:

latlon = VincentyDistance(miles=dist).destination(Point(lat1, lon1), bearing)

谁能指出我可能做错了什么?

最佳答案

Can anyone point me to what might i be doing wrong?

  1. 没有显示您的“不一致或具有相对较大的位移”结果的示例,也没有显示您的预期结果;因此,回答者必须依靠猜测。

  2. 没有说明您的输入(x、y 等)的测量单位,以及您如何获得用于destination 计算的dist。我假设(在计算下面的 bearing2 时)正 x 以英里为单位向东,正 y 以英里为单位向北。如果您要编辑您的问题以修复 (1) 和 (2),这将大有帮助。

  3. 一种不太利于让人们想要阅读它的编码风格......通过this 看一看| .

  4. 在学校三角学中,角度是从 X 轴(东)逆时针方向测量的。在导航中,方位从 Y 轴(北)顺时针方向测量。请参阅下面的代码。有关使用轴承的示例,请关注 this link ,向下滚动到“给定距离和距起点的方位角的目的地点”部分,注意该示例正在谈论大约 96 或 97 度的方位角,然后单击“查看 map ”,您会注意到航向略微偏南东(东为 90 度)。

代码:

from math import degrees, atan2
def gb(x, y, center_x, center_y):
angle = degrees(atan2(y - center_y, x - center_x))
bearing1 = (angle + 360) % 360
bearing2 = (90 - angle) % 360
print "gb: x=%2d y=%2d angle=%6.1f bearing1=%5.1f bearing2=%5.1f" % (x, y, angle, bearing1, bearing2)

for pt in ((0, 1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1),(-1, 0),(-1,1)):
gb(pt[0], pt[1], 0, 0)

输出:

gb: x= 0 y= 1 angle=  90.0 bearing1= 90.0 bearing2=  0.0
gb: x= 1 y= 1 angle= 45.0 bearing1= 45.0 bearing2= 45.0
gb: x= 1 y= 0 angle= 0.0 bearing1= 0.0 bearing2= 90.0
gb: x= 1 y=-1 angle= -45.0 bearing1=315.0 bearing2=135.0
gb: x= 0 y=-1 angle= -90.0 bearing1=270.0 bearing2=180.0
gb: x=-1 y=-1 angle=-135.0 bearing1=225.0 bearing2=225.0
gb: x=-1 y= 0 angle= 180.0 bearing1=180.0 bearing2=270.0
gb: x=-1 y= 1 angle= 135.0 bearing1=135.0 bearing2=315.0

关于python - 两点之间的方位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5058617/

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