我有一系列名为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] });
错误消息。
答案 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