检查传单路线上的点的存在

时间:2017-08-18 23:43:01

标签: javascript routing leaflet

传单路由机上是否有一种方法可以检查特定点,例如(lat,lng)是否在路由折线内?

1 个答案:

答案 0 :(得分:1)

没有,但使用Leaflet.GeometryUtil

仍然可行

查看belongsSegment功能:

belongsSegment(latlng, latlngA, latlngB, toleranceopt, nullable) → {boolean}

Returns true if the latlng belongs to segment A-B

因此,当在“路由计算机”中选择路径时,如果该点属于具有给定容差的点,则检查折线的每个段:

var point = {your specific point};
...
map.on('routeselected', function(e) {
    var route = e.route;
    isPointOnLine(point, route.coordinates));
})

其中isPointOnLine是

function isPointOnLine(point, path) {
    for (var i = 0; i < path.length - 1; i++) {
        if (L.GeometryUtil.belongsSegment(point, path[i], path[i + 1])) {
            return true;
        }
    }
    return false;
}