根据坐标点位置计算方位角(python实现)

根据坐标点位置计算方位角是在GPS轨迹处理和数据挖掘中很常见的得到车头朝向的方式。
网上的大部分代码都有些许错误,这里总结如下。(x1,y1)为当前GPS点坐标,(x2,y2)为下一个点的GPS坐标:

def calc_angle(x1,y1,x2,y2): 
    angle=0
    dy= y2-y1
    dx= x2-x1
    if dx==0 and dy>0:
        angle = 0
    if dx==0 and dy<0:
        angle = 180
    if dy==0 and dx>0:
        angle = 90
    if dy==0 and dx<0:
        angle = 270
    if dx>0 and dy>0:
       angle = math.atan(dx/dy)*180/math.pi
    elif dx<0 and dy>0:
       angle = 360 + math.atan(dx/dy)*180/math.pi
    elif dx<0 and dy<0:
       angle = 180 + math.atan(dx/dy)*180/math.pi
    elif dx>0 and dy<0:
       angle = 180 + math.atan(dx/dy)*180/math.pi
    return angle

你可能感兴趣的:(debug)