我有一个名为markers的标记数组,我使用LeafletJs将这些标记添加到地图中
L.layerGroup(markers).addTo(map);现在,我想关注一个覆盖所有标记的视区。
var bounds = L.latLngBounds(markers);
map.fitBounds(bounds, { padding: [20, 20] });为什么我在map.fitBounds(bounds, { padding: [20, 20] });行中收到Cannot read property 'lat' of undefined错误消息。
发布于 2014-12-13 04:34:01
出现错误的原因是因为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
https://stackoverflow.com/questions/27451152
复制相似问题