已知两个三维点(经度,纬度,高度)确定一条直线,已知另外一个三维点,求点到直线的垂直点坐标(经度,纬度,高度)。
目前使用这个方法,但是计算的点的坐标不准确,有很大偏差
//垂直点--所有点都等高
perpendicular(p1, p2, p3) {
if (p1 && p2 && p3) {
let z = p1.z || p2.z || p3.z;
let a = p2.y - p1.y;
let b = p1.x - p2.x;
let c = p2.x * p1.y - p1.x * p2.y;
let x = (b * b * p3.x - a * b * p3.y - a * c) / (a * a + b * b);
let y = (-a * b * p3.x + a * a * p3.y - b * c) / (a * a + b * b);
return { x, y, z };
}
},