map.fitBounds()与featureGroup中的JSON数据

时间:2017-07-03 08:19:51

标签: leaflet

我无法使用fitBounds命令处理我使用GeoJSON将数据引入featureLayer的项目。

此:

map.fitBounds(pointsFeatureGroup.getBounds()); // Uncaught Error: Bounds are not valid. at e.fitBounds (leaflet.js:5)

和此:

var bounds = L.latLngBounds(pointsFeatureGroup); // Uncaught Error: Bounds are not valid. at e.fitBounds
map.fitBounds(bounds);

不能工作

我的简化代码在这里: https://github.com/DPB61/leafletjs_problem2

如果我只是将标记单独引入普通图层,那么这样的命令就可以了:

map.fitBounds(PointsLayer.getBounds());

但是这引发了其他需要功能层的功能的其他问题。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

根本原因是经典的异步问题。

请参阅How do I return the response from an asynchronous call?

当您致电map.fitBounds(vesselsFeatureGroup.getBounds())时,vesselsFeatureGroup仍然为空(没有子图层),因此Leaflet无法计算边界。

只需在异步任务(getBounds)的回调中调用fitBounds$.getJSON