2016-07-29 139 views
0

我正在使用公交路線圖,並且有幾條用戶可以打開和關閉的路線。我想了解如何縮放/平移,以便在選擇時將選定的路線(或路線)完全顯示在屏幕上。 (有些在初始縮放級別下不在屏幕上)。Leaflet - 當切換圖層時縮放/平鋪到圖層的範圍

這裏的神奇至今:

var busRoute10 = L.geoJson([route10, busStop3, busStop4],{onEachFeature: onEachFeature}); 
var busRoute11 = L.geoJson([route11, busStop19, busStop16, busStop18, busStop22],{onEachFeature: onEachFeature}); 
var busRoute12 = L.geoJson([route12, busStop23, busStop42, busStop43, busStop15, busStop28, busStop27, busStop22, busStop16],{onEachFeature: onEachFeature}); 
var busRoute13 = L.geoJson([route13, busStop44, busStop31, busStop25, busStop26, busStop36],{onEachFeature: onEachFeature}); 


var baseLayers = { 
"Route 10": busRoute10, 
"Route 11": busRoute12, 
"Route 12<hr>": busRoute14, 
"Route 13": busRoute20, 
}; 

L.control.layers(null, baseLayers, {collapsed: false}).setPosition ('topright').addTo(map); 

我試過map.fitBounds的多種組合,只是似乎無法得到它。

另外,有沒有一種方法來添加標題和字幕到控制箱?我想有contols樣子:


[] 10號公路
[] 11號線

[] 12號線...等

回答

0

你應該附加一個監聽器在地圖的"overlayadd"事件。然後,您可以使用event.layer.getBounds()來執行map.fitBounds(),因爲您的圖層是GeoJSON組。

至於在圖層控件中組織圖層,使用默認控件是不可能的。但你可以看看Leaflet plugins