单张 - 切换图层时缩放/平移到图层范围

时间:2016-07-29 19:29:01

标签: leaflet fitbounds

我正在制作公交路线图,并有几条用户可以打开和关闭的路线。我想弄清楚如何缩放/平移,以便在选择时所选路线(或路线)完全在屏幕上。 (有些屏幕显示初始缩放级别。)

到目前为止,这是魔术:

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组合,但似乎无法得到它。

另外,有没有办法在控件框中添加标题和副标题?我想让控制看起来像:


[] 10号公路 []路线11 夜
[]路线12 ......等

1 个答案:

答案 0 :(得分:1)

你应该在地图的"overlayadd"事件上附加一个监听器。然后,您可以使用map.fitBounds()执行event.layer.getBounds(),因为您的图层是GeoJSON组。

至于在图层控件中组织图层,默认控件是不可能的。但是你可以查看Leaflet plugins