我在地图上使用传单绘制插件以编程方式(不使用传单绘制)在polygone中绘制折线,我想只保留多边形内部的折线点并删除它们在外面。你有任何想法如何使用传单插件吗?任何帮助深表感谢。感谢
以下是截图:
预期结果:
我对@Sam建议的差异方法进行了研究,所以最终我可以在我的绘图多边形和线上应用这个方法,这里是一个代码片段:
var line = path.toGeoJSON();
var polygon = selectedPoly.toGeoJSON();
var difference, result = [];
difference = turf.difference(line, polygon);
if (difference)
{
result.push(difference);
var inter = L.geoJson(result).addTo(map);
}
这是结果的屏幕截图:
现在我想要移除这部分线并仅保留多边形内的部分,我试图这样做但不起作用。你能帮我吗?谢谢
答案 0 :(得分:1)
我正在使用turfjs检查传单中的重叠多边形。
map.on('draw:created', function (e) {
var intersection = [];
otherPolysLayer.eachLayer(function (layer) {
if (!_.isUndefined(turf.intersect(e.layer.toGeoJSON(), ))) {
intersection.push(layer);
}
})
});
您可以更改上述内容,以便检查整个多边形,然后使用difference方法进行检查。
差异:通过剪切来查找两个多边形之间的差异 来自第一个的第二个多边形。
我一直在为一个体面的图书馆寻找一段时间,并查看了传单,kevlindev,但我发现草皮真的只是开箱即用。
<强>更新强>
http://jsfiddle.net/ddce1wh5/怎么样?我使用了交叉,因为这显然是你要保留的部分,我误读,道歉。下面的http://jsfiddle.net/mcqL1y90/我们使用一个使用相交线的线阵列,或者如果没有发生交叉,它会使线本身在地图上绘制。