我使用的是一个组合图层,每次添加新图层或删除旧图层时,我必须刷新(目前使用.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/
我给不同的贴图命名,这样你就能看到。显然,您将对两个图层使用相同的模板。