已知一点经纬度,方向角和距离,计算另一点的经纬度
已知一点经纬度,方向角和距离,计算另一点的经纬度
最近因为项目需要在地图上绘制小车的方向线,需要根据当前坐标和方向角计算当前方向上的另一个坐标点,下面是一个在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] //方向上的另一点坐标
}