2015-09-04 56 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