2017-03-02 16 views
1

我在地图上使用小册子绘制插件在多边形内以编程方式绘制折线(未使用单张绘制),我只想保留多边形内的折线点和删除那些在外面。你有任何想法如何使用传单插件做到这一点?任何帮助深表感谢。由于使用小册子删除多边形之外的多义线点

下面是截图:

enter image description here

预期的结果:

enter image description here

我做了差异**草皮”库作为@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); 
 
}

这是结果的截图:

enter image description here

现在我想删除线的这部分,只保留部分内的多边形,我试着做但不工作。你能帮我吗?谢谢

回答

1

我正在与turfjs一起检查传单中的重叠多边形。

map.on('draw:created', function (e) { 
     var intersection = []; 
     otherPolysLayer.eachLayer(function (layer) { 
     if (!_.isUndefined(turf.intersect(e.layer.toGeoJSON(),))) { 
      intersection.push(layer); 
     } 
    }) 
}); 

你可以改变上面的,这样反而会检查整个polygone,你会用difference方法检查。

:通过夹持从第一 第二多边形查找两个多边形之间的差。

我一直在寻找一个良好而对于一个像样的图书馆,看着传单-PIP,kevlindev除其他外,但我发现,草皮真的只是工作开箱。

更新

http://jsfiddle.net/ddce1wh5/这个怎么样?我使用了相交,因为这显然是你想要保留的部分,我误解了,道歉。下面的http://jsfiddle.net/mcqL1y90/我们使用一个使用相交线的线阵列,或者如果没有相交发生,它需要线自己在地图上绘制。

+0

谢谢@Sam的澄清,我将尝试在折线和多边形上应用**草皮**的差异**方法。再次感谢 – nermiiine

+0

我正在使用Turfjs库,因为你说@ Sam,所以到现在为止,我可以得到差异层,现在我有问题如何删除多边形以外的部分线,我编辑帖子以添加screeshot和我的代码snippet – nermiiine

+0

直到现在我还找不到解决方案:( – nermiiine

相关问题