【问题标题】:Leaflet - Zoom/Pan to Layer Extent when Toggling LayersLeaflet - 切换图层时缩放/平移到图层范围
【发布时间】:2016-12-04 14:34:49
【问题描述】:

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

到目前为止,这是魔法:

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 号公路...等

【问题讨论】:

    标签: leaflet fitbounds


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 2013-05-31
      • 2018-12-05
      相关资源
      最近更新 更多