【问题标题】:Openlayers 3 map, how refresh without having focusOpenlayers 3 地图,如何在没有焦点的情况下刷新
【发布时间】:2020-05-03 21:34:15
【问题描述】:

我在使用 Openlayers 3 地图时遇到了两个类似的问题。它们都与在没有焦点时刷新/重绘地图有关;即当鼠标不在它上面时。

1) 当鼠标悬停在一个国家/地区的轮廓上时,它会显示一个国家的轮廓,但当鼠标移开时它会变得透明。但是,如果该国家/地区位于地图视图的边缘,并且我将鼠标移出地图的该边缘,则该国家/地区将保持轮廓,因为地图永远不会看到鼠标在该国家/地区以外的其他区域上。

2) 当我单击一个国家/地区时,它会永久突出显示(即图层变得可见)。我在地图上有一个按钮,单击该按钮会将所有图层重置为透明。当我点击按钮时,什么都没有发生,直到我将鼠标移回地图上,此时变化变得明显并且图层消失了。

有没有办法在鼠标不在地图上时强制更新地图?

我尝试了几个选项:map.redraw()layer.redraw()source.refresh()map.refresh()layer.refresh()source.refresh()document.getElementById("map").focus() 以及我能找到的任何其他建议来强制刷新地图,但在鼠标移到地图上之前,它们都不起作用。

【问题讨论】:

  • 你试过map.render()map.renderSync()吗?
  • 是的,我已经尝试了这两种方法,但直到我再次将鼠标悬停在地图上之前仍然没有效果。
  • 也许我应该澄清一下。当鼠标悬停在一个国家/地区时,该国家/地区上的矢量样式会变为暗色(颜色从 0,0,0,0 变为 0,0,0,.2)。当鼠标离开地图时,样式不会更新。我在代码中设置样式,但在鼠标回到地图上之前它不会在地图上改变。
  • 您使用的是 Select 交互吗?如果是,是哪个版本的 OpenLayers?
  • 在下面查看我的评论。此问题已关闭。

标签: javascript focus openlayers


【解决方案1】:

我的错误,简单的错误。无法直接更新样式,假设另一个例程正在处理它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2022-11-22
    • 2012-04-03
    • 2014-10-22
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多