带有传单的标记的fitBounds

Mos*_*hii 5 fitbounds leaflet

我有一组命名的标记markers,我使用这些标记在地图中添加LeafletJs

L.layerGroup(markers).addTo(map);
Run Code Online (Sandbox Code Playgroud)

现在我想专注于覆盖所有标记的视口

var bounds = L.latLngBounds(markers);
 map.fitBounds(bounds, { padding: [20, 20] });
Run Code Online (Sandbox Code Playgroud)

为什么我收到Cannot read property 'lat' of undefined错误消息map.fitBounds(bounds, { padding: [20, 20] });

iH8*_*iH8 8

您收到错误的原因是因为 L.LatLngBounds 需要两个 L.LatLng 对象作为参数,而不是标记数组,如您在文档中所见。我建议使用L.FeatureGroup,它是从 L.LayerGroup 扩展而来的,但有一些附加功能。它有一个getBounds方法,它可以完全满足您的需要,根据添加到组中的所有特征计算边界。所以你可以这样做:

var featureGroup = L.featureGroup(markers).addTo(map);
map.fitBounds(featureGroup.getBounds());
Run Code Online (Sandbox Code Playgroud)

这是一个关于 Plunker 的工作示例:http ://plnkr.co/edit/EbzlaF05fLARDYbnXSSk