我有一张OpenLayers地图,几乎占据了所有页面大小。它上面还有13个矢量图层。当我拖动地图并启用所有图层时 - 整个页面开始闪烁。它只在chrome中复制,在firefox中一切看起来都很好。当我禁用两个图层时 - 闪烁停止。如果我让地图变小 - 闪烁停止。它看起来像某种铬虫。我的chrome版本:31.0.1650.8 beta-m
我创建了一个fiddle来证明这个问题。尝试将VECTOR_LAYERS_COUNT设置为45并且您将看到问题,如果您减小地图的宽度/高度,即使有45层,闪烁也会停止。这是代码:
var VECTOR_LAYERS_COUNT = 25; // set to 45 to see result
for (var i = 0; i < VECTOR_LAYERS_COUNT; i++) {
var layer = new OpenLayers.Layer.Vector(i, {
renderers: OpenLayers.Layer.Vector.prototype.renderers,
rendererOptions: {
zIndexing: true
},
visibility: true,
});
mapa.addLayer(layer);
}
答案 0 :(得分:1)
过去几周我在Chrome中遇到了同样的问题。
这似乎是OpenLayers及更高版本Chrome的已知问题。
解决方法是禁用图层的SVG渲染。
从
更改以下行renderers: OpenLayers.Layer.Vector.prototype.renderers,
到
renderers: ['Canvas', 'VML'],
这解决了我的问题。
HTH
<强>更新强>
原来这不是解决问题的方法。问题出在Chrome的合成引擎上。我已经向铬开发者提交了一份错误报告,他们已经成功验证并接受了错误报告。
我不确定开发人员何时会解决这个问题,但至少还有一些工作正在进行中。
对于那些在家中关注的人,这是错误报告:https://code.google.com/p/chromium/issues/detail?id=346621