更改开放图层中标记的 z 索引



我有一个图层,其中包含多个带有相当大图标的标记,因此它们重叠。通过地图一侧的列表,用户可以选择一个标记,地图将平移(和缩放)到它。但它仍将落后于其他一些制造商。如何获取单个制造商 z 索引并进行设置?我会很有用,以获得使用最多的 z 索引并添加一个。(另一种解决方案是将标记总数添加到 z 索引中)

标记(或功能)位于 myLib.features 数组中。控制台不显示任何 z 索引类型函数。

我找不到合适的示例或 api 函数。

编辑:

我找到了这个例子:http://dev.openlayers.org/examples/ordering.html我真的不明白。以某种方式,创建的要素通过某种符号化器获取图层给出的下一个 z 索引。我不知道如何将这种静态排序转换为动态排序。

试试这个:

首先,确保您使用的是 OpenLayers.Layer.Vector 层,而不是 OpenLayers.Layer.Marks 层。 显然,标记层是旧新闻,所有新的开发都是在矢量层中完成的。 它具有更多功能。 (我自己在标记层上浪费了一堆时间)。

然后,每个标记都需要是一个 OpenLayers.Feature.Vector 对象。构造函数接受三个参数,其中第三个参数称为样式。样式是设置图像属性、背景阴影、鼠标悬停文本和 z 索引(属性名称为"graphicZIndex")的位置。 我认为这就是你要找的。

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Feature/Vector-js.html#OpenLayers.Feature.Vector.OpenLayers.Feature.Vector.style

使用addFeatures函数将您的"标记"(矢量的)添加到矢量图层中。 并且忽略"选项"参数。

http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Layer/Vector-js.html#OpenLayers.Layer.Vector.addFeatures

我也

找到了那个示例页面,我也发现它令人困惑。 它在 Vector 层的构造函数中设置所有标记的样式(作为省略标记样式时使用的默认值)而不是标记的构造函数。我认为在标记构造函数中设置标记样式更有意义。

要实时更改样式,请使用一个称为"标记"的OpenLayers.Feature.Vector标记并执行此操作。 让我们称矢量层为"层"。

marker.style.graphicZIndex = 13;
layer.redraw();

最新更新