0

我正在寻找一种适合传单地图边界的解决方案,以显示加载的 geoJSON 文件的内容。

为了加载文件,我使用 Leaflet-ajax。我已经尝试过了,但我不知道如何获得图层的边界。任何建议如何调整显示的地图扇区以显示 geoJSON 文件?谢谢。

var geojsonLayer = new L.GeoJSON.AJAX('http://localhost:8080/test.geojson');
geojsonLayer.addTo(this.map);
this.map.fitBounds(geojsonLayer.getBounds());

4

1 回答 1

6

AJAX 表示异步:因此 fitBounds 调用将在加载内容之前运行。要正确执行此操作,您需要等待 data:loaded 事件。

var geojsonLayer = new L.GeoJSON.AJAX('http://localhost:8080/test.geojson');
geojsonLayer.addTo(this.map);
geojsonLayer.on('data:loaded', function() {
  this.map.fitBounds(geojsonLayer.getBounds());
}.bind(this));

因为.bind(this)回调默认会有不同的 this 值

于 2015-04-20T13:54:52.117 回答