将所有图层添加到leafletjs贴图时进行回调

时间:2013-09-19 14:54:32

标签: javascript leaflet

情况:我正在为地图添加一个新的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事件,但是对于一个图层组是否类似?

由于

2 个答案:

答案 0 :(得分: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
});

答案 1 :(得分:1)

更新的语法当前是“数据:已加载”,如本文中所见;

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