2016-07-29 441 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