OpenLayers 3:地图模糊不清

时间:2015-03-05 14:24:07

标签: openlayers-3

当我将地图(相同的html,css,js)添加到其他页面时,地图有时会模糊不清。不同的页面可能包含其他html,css和js。左侧的清晰图片位于第三方添加CSS的页面内。右边的那个没有别人的html,css和js。

如何解决此问题?

Comparison of sharp vs blurry

在检查细节时我注意到的一件事是第二个例子的画布尺寸要小得多。

Sharp map width and height is correct Blurry map width and height is smaller

编辑[固定!]:

我发现了查看ol.js源代码的问题。在控制台上,模糊图像具有map.frameState_.pixelRatio = 0.89(默认为window.devicePixelRatio),而清晰图像具有map.frameState_.pixelRatio = 1.如果我在初始化地图时设置pixelRatio = 1,则修复了问题:

var map = new ol.Map({pixelRatio: 1, ...});

事实证明,如果你的互联网浏览器被放大(例如,90%),window.devicePixelRatio将会改变,这会导致模糊。但是,当您缩放回100%时,地图仍然会缩放,直到您刷新页面。

1 个答案:

答案 0 :(得分:0)

这是一个尚未修复的well known issue
如果浏览器已经缩放,我会建议detecting并向用户发送提醒,例如 - "嘿。如果您没有将浏览器放大到100%"那么地图会很糟糕。
还有一点offtopic - 如果你更改容器大小和地图,如果blury,只需调用map.updateSize()来解决它。