美文网首页
已知AB两点坐标,和偏移点C与A点的距离(单位米)

已知AB两点坐标,和偏移点C与A点的距离(单位米)

作者: 可乐_加冰_ | 来源:发表于2023-02-01 17:19 被阅读0次
image.png
  • 解释
求 cy 可以根据: len / a到b距离 = a到c垂直距离 / a 到 b的垂直距离,首先求a到b的距离,求平方根公式如下:
r = sqrt((x1- x2)*(x1 - x2) +(y1 - y2)*(y1 - y2));
然后计算cy的值
cy = (len*(y2-y1))/r + y1;
同理,可以计算出cx的值:
cx = (len*(x2-x1))/r + x1;
  • JS代码
// 计算点到指定点偏移固定距离的坐标点
// a : 起始点
// b : 终点
// len : 偏移距离
function getNewRollPoint(a, b, len) {
    var r = Math.sqrt((a.Longitude - b.Longitude) * (a.Longitude - b.Longitude) + (a.Latitude - b.Latitude) * (a.Latitude - b.Latitude));
    var cx = (len * (b.Longitude - a.Longitude)) / r + a.Longitude;
    var cy = (len * (b.Latitude - a.Latitude)) / r + a.Latitude;
    return {
        Longitude: cx,
        Latitude: cy
    }
}
  • 注意
距离值单位要根据经纬度规则定义。
比如C点到A点,相差10米,则
this.getNewRollPoint(a,b,10/100000)
根据经纬度规则:第五位小数是精确到米,所以用 10/100000
1675329522381.png

相关文章

网友评论

      本文标题:已知AB两点坐标,和偏移点C与A点的距离(单位米)

      本文链接:https://www.haomeiwen.com/subject/sjbihdtx.html