如何保持旧的瓷砖,直到每一个新的瓷砖加载时,重绘一层在传单



我使用的是一个组合图层,每次添加新图层或删除旧图层时,我必须刷新(目前使用.redraw())。我的实现没有技术问题,但是当一个图层被切换时,会有一个短暂的闪烁,因为旧的瓷砖会立即被移除,但是新的瓷砖显然需要一些时间来加载。

是否有办法保留这些旧的瓷砖,直到它的替换已经加载,导致更平稳的过渡?

我考虑过使用一个临时层,并在旧的上面加载新的瓷砖,但这会导致很多额外的工作和加载,所以我希望传单有一些更优雅的内置,像一个delayRemoval选项或其他东西。


这是一个jsfiddle: http://jsfiddle.net/Q6586/

如果你点击地图,它会重新绘制自己,立即删除旧的瓷砖,地图会短暂地闪烁灰色之前,新的加载。

我想去掉那个闪光灯。我暂时解决了这个问题,在旧的图层上创建了一个新图层,但我觉得这是一个非常不优雅的解决方案。

你可以创建另一个图层,当你重绘时,你会把它放在前面。

事件'load'将告诉你何时加载所有的tile

map.on('click', function(e) {
    layer2.bringToFront();
    layer.on('load', function(e) {
        console.log('loaded');
        layer.bringToFront();
    });
    layer.redraw();
});

看看这个JSFiddle: http://jsfiddle.net/FranceImage/5452r/

我给不同的贴图命名,这样你就能看到。显然,您将对两个图层使用相同的模板。

最新更新