Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

js判断点在线上位置,距离各端点距离算法


目录

思路

循环遍历线上所有点,判断点到连续两点组成的线之间的距离,如果距离为0则在这两点之间。遍历过程中将判断过的线的长度累加,最后加上点到点所在两点间中靠近起点的那个点的长度,就为起点到该点的长度。 
如果判断点到末尾点,则把数组反转一下

代码

//获取线上两点间距离
//coord 判断点
//coords 组成线的点的集合
//结合了openlayers计算线的长度,可以数据计算 (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)开平方
function getLength(coord, coords) {
    var leng = 0;
    for (var i = 0; i <= coords.length; i++) {
        var line = new ol.Feature({ geometry: new ol.geom.LineString([coords[i], coords[i + 1]]) });
        if (isOnLine(coord, line, 0)) {
            leng += new ol.geom.LineString([coords[i], coord]).getLength();
            break;
        } else {
            leng += line.getGeometry().getLength();
        }
    }
    return leng;
}

Have any Question or Comment?

发表评论

您的电子邮箱地址不会被公开。

CAPTCHAis initialing...