1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 根据起始点经纬度 距离 方位角计算目标点经纬度的方法

根据起始点经纬度 距离 方位角计算目标点经纬度的方法

时间:2023-06-10 08:28:10

相关推荐

根据起始点经纬度 距离 方位角计算目标点经纬度的方法

主要目的:

在处理卡口数据的过程中,遇到了一个问题:对于每个交叉口只知道其中心点的经纬度,而不知道每个进口道停车线的经纬度,对不同的进口道,难以将轨迹数据分开处理。

因此,采用了一种简化的方法,假设了每个交叉口中心点到每个停车线的距离为m米,根据相邻的两个交叉口中心经纬度,计算了路段方位角,进而根据交叉口中心点到每个停车线的距离、路段走向方位角、路段中心店经纬度这三个信息,计算出了每个进口道停车线的经纬度。其中用到的代码如下:

1.根据起始点经纬度、目标点经纬度计算它们之间的方位角

def calc_azimuth(lat1, lon1, lat2, lon2):lat1_rad = lat1 * math.pi / 180lon1_rad = lon1 * math.pi / 180lat2_rad = lat2 * math.pi / 180lon2_rad = lon2 * math.pi / 180y = math.sin(lon2_rad - lon1_rad) * math.cos(lat2_rad)x = math.cos(lat1_rad) * math.sin(lat2_rad) - \math.sin(lat1_rad) * math.cos(lat2_rad) * math.cos(lon2_rad - lon1_rad)brng = math.atan2(y, x) * 180 / math.pireturn float((brng + 360.0) % 360.0)

2.根据起始点经纬度、距离、方位角计算目标点经纬度

参考了这篇博客的计算方法:/sinat_32857543/article/details/107207553

def calc_situation(lon1, lat1, deg, dis):arc = 6371.393*1000lon2 = lon1 + dis*math.sin(deg)/(arc*math.cos(lat1)*2*math.pi/360)lat2 = lat1 + dis*math.cos(deg)/(arc*2*math.pi/360)return lon2,lat2

注意:距离dis的单位是米,deg是方位角,需要化为弧度。lon1,lat1是起始点经纬度信息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。