2015-09-04 58 views
2

我使用Leaflet 1.0 beta作为一个平铺的图像浏览器的路径,所以我不需要任何花哨的坐标转换外,GeoJSON等添加三次Bezier曲线单张

我希望能够增加立方贝塞尔线重叠,最好与SVG d属性的工作方式相同,因为Leaflet似乎只支持多边形路径(直线)。有没有简单的方法来实现这个目标(例如通过扩展Polygon类)?

我试过直接更改路径的d属性,但当视图更改时它们会重绘。
我也试过使用turfjs' bezier splines,但显然没有支持我想要的,只是平滑的坐标列表。

回答

0

您可以使用草皮贝塞尔创建任何LineString几何中的插值贝塞尔线。

Bezier spline @http://turfjs.org/

回答tmcw和蔼@In Mapbox.js, how to smooth a polyline?

+0

我对于没有列入这个信息早道歉,但我需要三次Bezier曲线的支持,preferrably等同于如何SVG' d'工作。我之前尝试过使用Turf,但我不明白我是否可以做这项工作以及如何做。你能举个简单的例子吗?谢谢! – Whatbithever

+0

@Whatbithever是你应该提出的信息,而且应该放在你的问题中:展示你的尝试,并解释为什么你不想要这样,所以人们不必花时间给你你已经排除的一个答案,而不告诉 –

3

我创建了一个Leaflet plugin绘制贝赛尔曲线。路径数据的格式类似于SVG路径命令,但唯一的绝对命令的支持:

var path = L.curve(['M',[50.54136296522163,28.520507812500004], 
        'C',[52.214338608258224,28.564453125000004], 
         [48.45835188280866,33.57421875000001], 
         [50.680797145321655,33.83789062500001], 
        'V',[48.40003249610685], 
        'L',[47.45839225859763,31.201171875], 
         [48.40003249610685,28.564453125000004],'Z'], 
        {color:'red',fill:true}).addTo(map); 
+0

感谢你!你介意给我一个关于如何使用[Leaflet.Editable](https://github.com/Leaflet/Leaflet.Editable)进行工作的想法吗?再次感谢! – edjroot

+0

不幸的是,将这两个插件一起使用是不可能的。我打算考虑在未来让他们一起工作,除非有人击败我;-) – Elfalem