8

情况:我正在向我的地图添加一个新的 geoJson 图层,并且我想在添加所有标记后对其进行动画处理,每个标记之间会有轻微的延迟。API 似乎可以做所有事情,但在添加最后一个标记时提供回调!

示例代码

L.geoJson(data, {      
    onEachFeature: function (feature, layer) {
        console.log(feature, layer);
    }
}).addTo(map);

我想要的是

 L.geoJson(data, {      
    onEachFeature: function (feature, layer) {
        console.log(feature, layer);
    },
    complete:function(layers){
        console.log(layers);
    }
}).addTo(map);

我知道每个图层都有一个 onAdd 事件,但是 layerGroup 有类似的吗?

谢谢

4

2 回答 2

3

我已经与leafletjs的主要贡献者取得了联系,并且不需要对标准geojson层进行回调,您可以这样做;

var layer = L.geoJson(data, {}).addTo(map);
animateMyIconsIn(layer.getLayers()); // your custom function

但是,如果您使用 AJAX 插件,则确实需要回调;

//first create the layer
var  layer = L.geoJson.AJAX(url, {});
//then add a listener
layer.on('dataLoadComplete',function(e){
    //finally add the layer
    layer.addTo(map);
    animateMyIconsIn(layer.getLayers()); // your custom function
});
于 2013-10-02T15:00:59.563 回答
1

更新的语法目前是从这篇文章中找到的“数据:加载”;

https://gis.stackexchange.com/questions/271919/how-to-cluster-external-geojson-using-leaflet-ajax-js

于 2020-06-18T10:16:45.207 回答