已知一点经纬度,方向角和距离,计算另一点的经纬度

发布时间 2023-03-22 21:08:54作者: CNPolaris

已知一点经纬度,方向角和距离,计算另一点的经纬度

最近因为项目需要在地图上绘制小车的方向线,需要根据当前坐标和方向角计算当前方向上的另一个坐标点,下面是一个在Javascript上实现的计算方法。

/*
* 计算方向线坐标
* @param {Number} lng 当前经度
* @param {Number} lat 当前纬度
* @param {Number} deg 艏向角 角度制
* @param {Number} dis 长度
* @return 艏向上的一个坐标点
*/
function calcSituation(lng, lat, deg, dis) {
	const arc = 6371.393 * 1000		//地球平均半径
	const rad = deg * (Math.PI / 180)	//角度转弧度
	const c_lng = lng + dis * Math.sin(rad) / (arc * Math.cos(lat) * 2 * Math.PI / 360)
	const c_lat = lat + dis * Math.cos(rad) / (arc * 2 * Math.PI / 360)
	return [c_lng, c_lat]	//方向上的另一点坐标
}