5

我有一个命名的标记数组,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] });

4

1 回答 1

8

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

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

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

于 2014-12-12T20:34:00.777 回答