当我将地图(相同的html,css,js)添加到其他页面时,地图有时会模糊不清。不同的页面可能包含其他html,css和js。左侧的清晰图片位于第三方添加CSS的页面内。右边的那个没有别人的html,css和js。
如何解决此问题?
在检查细节时我注意到的一件事是第二个例子的画布尺寸要小得多。
编辑[固定!]:
我发现了查看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%时,地图仍然会缩放,直到您刷新页面。
答案 0 :(得分:0)
这是一个尚未修复的well known issue。
如果浏览器已经缩放,我会建议detecting并向用户发送提醒,例如 - "嘿。如果您没有将浏览器放大到100%"那么地图会很糟糕。
还有一点offtopic - 如果你更改容器大小和地图,如果blury,只需调用map.updateSize()
来解决它。