我无法使用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());
但是这引发了其他需要功能层的功能的其他问题。
我做错了吗?
答案 0 :(得分:0)
根本原因是经典的异步问题。
请参阅How do I return the response from an asynchronous call?
当您致电map.fitBounds(vesselsFeatureGroup.getBounds())
时,vesselsFeatureGroup
仍然为空(没有子图层),因此Leaflet无法计算边界。
只需在异步任务(getBounds
)的回调中调用fitBounds
和$.getJSON