【发布时间】:2018-06-21 01:43:21
【问题描述】:
我有几个矢量图层,一个有多边形,一个有线条。我们需要将线添加到附加到多边形的线层(数据库过程需要多边形 ID,这些 ID 存储在多边形的属性中)
所以我在lineLayer 上有一个drawFeature 控件,在polygonLayer 上有一个selectFeature(在悬停时存储ID 而不仅仅是选择)。它实际上工作得很好,除了添加时 linelayer 的 z 轴较低,因此它显示了在多边形下绘制的新线。宁愿让线条显示在多边形上。我知道这是因为当 selectFeature 控件处于活动状态时,它会将多边形图层的 z-index 设置为高于 lineLayer。 我使用 lineLayer.setZIndex(800) 或其他方法手动将 linelayer 的 z-index 设置为高于多边形层,这肯定会使新线在多边形上绘制,但随后 selectFeature 事件不会触发。 我考虑了几种解决方案,包括将 drawFeature 添加到我的多边形图层,然后在完成后将要素移动到线图层,但它仍在多边形下渲染,我什至在我的样式图的“临时”样式上使用了 graphicsZIndex多边形层。无济于事(我确实在多边形层上将 renderOptions zindexing 设置为 true)
我可能从错误的角度来处理这个问题,所以我愿意接受建议。如果矢量图层上有一个可用的函数,例如 getFeatureByPosition(position),我可以在 sketchStarted 和 sketchEnded 事件上获取位置并查询它,但到目前为止我还没有找到类似的东西。
我现在不在我的开发盒上,以防有人想知道为什么没有代码。想在工作中发布此内容,但基础网络在显示登录页面时出现问题(我认为是 ssl)
【问题讨论】:
标签: javascript z-index openlayers