加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Open Layers和事件在多层(OpenLayer.Layer.Vector)

发布时间:2020-12-14 16:19:44 所属栏目:Java 来源:网络整理
导读:另一天工作与openlayers和另一个问题. 也就是说,对于不同类型的东西(汽车,历史和地区的旅行),我拥有多个矢量图层.他们都有事件,我试图抓
另一天工作与openlayers和另一个问题.

也就是说,对于不同类型的东西(汽车,历史和地区的旅行),我拥有多个矢量图层.他们都有事件,我试图抓住…但正如Niklas发现,当你在一层上激活事件,它被移动到顶部,层以上的事件不会发射.

有没有办法绕过这个?因为当我移动区域多边形时,我想要事件触发和显示它的名字,当我将鼠标移动到汽车标记,我也想事件火.而不,我不想把它们放在同一层,因为我希望可以把它们关闭或快速,而不会循环遍历所有的功能,并禁用它们.

艾伦

Edit1:我做了一些搜索,发现你可以在多个层上使用相同的控件.这可能会为我解决这个问题.我检查它atm和测试是否添加更多的层到单一的控制是解决我的问题或不.

> Forcing an OpenLayers Markers layer to draw on top,and having selectable layers beneath

解决方法

当我遇到同样的问题时,我发现这个问题,试图让多个层面对鼠标事件做出反应.

解决方案,以防万一有人发现这个线程要简单得多.

SelectFeature控件采用一个Vector层数组,如果您需要对鼠标事件(悬停和点击)做出反应的所有缓冲区都在该数组中,则它们都可以工作,而不仅仅是移动到顶部的缓冲区.

所以,在这个线程的批准的解决方案中,通过这样做可以大大简化:

this.carSelect = new OpenLayers.Control.SelectFeature(
    [this.vectorsLayer,this.carsLayer],{
        'hover':true,'callbacks': {
            blah blah blah
    }
});

这将在两层上注册适当的事件,并使它们同时生效.

我希望这有助于任何人绊倒这个问题.

如其他地方所说,使用OpenLayers并不难,找到正确的方法来做事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读