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

前端之家收集整理的这篇文章主要介绍了Open Layers和事件在多层(OpenLayer.Layer.Vector)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
另一天工作与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并不难,找到正确的方法来做事情.

猜你在找的Java相关文章