检查leaflet路线上是否存在点

4

Leaflet Routing Machine中是否有一种方法可以检查特定点(例如(lat,lng))是否在路径折线内?

1个回答

2

虽然没有,但是仍然可以使用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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接