带有Leaflet的fitBounds标记

时间:2014-12-12 19:55:08

标签: leaflet fitbounds

我有一系列名为markers的标记,我使用LeafletJs

在地图中添加这些标记
L.layerGroup(markers).addTo(map);

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

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

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

1 个答案:

答案 0 :(得分:3)

您收到错误的原因是因为L.LatLngBounds需要两个L.LatLng对象作为参数,而不是标记数组,正如您在documentation中看到的那样。我建议使用L.FeatureGroup,它从L.LayerGroup延伸,但有一些额外内容。它有一个getBounds方法,可以完全按照您的需要进行操作,根据添加到组中的所有功能计算边界。所以你可以这样做:

var featureGroup = L.featureGroup(markers).addTo(map);
map.fitBounds(featureGroup.getBounds());

以下是关于Plunker的工作示例:http://plnkr.co/edit/EbzlaF05fLARDYbnXSSk