我正在使用组合的tilelayer,每次添加新图层或删除旧图层时,我必须刷新(当前使用.redraw()
)。我的实现没有技术问题,但是当一个图层被切换时,会有一个短暂的闪烁,因为旧的图块会被立即删除,但是新图块显然需要花费一些时间才能加载。
是否有任何方法可以保留每个旧瓷砖,直到其更换已加载,从而实现更平滑的过渡?
我考虑过使用临时图层,并将新图块加载到旧图块上方,但这会导致大量额外的工作和加载,所以我希望传单内置更优雅,就像一个delayRemoval选项等等。
这是一个小伙伴:http://jsfiddle.net/Q6586/
如果你点击地图,它会自动重绘,立即删除旧的图块,地图会在加载新图块之前暂时闪烁灰色。
我想摆脱那个闪光灯。我暂时通过在旧版本之上创建一个新图层来解决这个问题,但我觉得这是一个非常不优雅的解决方案。
答案 0 :(得分:1)
您可以创建另一个图层,在重绘时将它带到前面。
事件'load'将告诉您何时加载所有图块
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/
我打电话给不同的瓷砖,你可以看到。显然,您将对两个切片图层使用相同的模板。