更改openlayers中标记的z-index

Jer*_*oen 9 z-index markers openlayers openstreetmap

我有一个带有多个标记的图层,图标相当大,所以它们重叠.通过地图一侧的列表,用户可以选择一个标记,地图将平移(和缩放)到它.但它仍将落后于其他一些制造商.如何获得个体制造商z-index并设置它?获得最高使用的z-index并添加一个,我会很有用.(另一个解决方案是将标记的总数添加到z-index)

标记(或特征)位于myLib.features数组中.控制台不显示任何z-index类型的功能.

我无法为此找到合适的示例或api函数.

编辑:

我找到了这个例子:http://dev.openlayers.org/examples/ordering.html 我真的不明白它.不知何故,创建的特征通过某些符号化器获取图层给出的下一个z-index.我不知道如何将这种静态排序变成动态排序.

Mag*_*tic 3

尝试这个:

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

然后,每个标记都需要是 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

我也发现了那个示例页面,我也发现它很混乱。它在矢量图层的构造函数中设置所有标记的样式(如果省略标记样式,则将使用默认值)而不是标记的构造函数。我认为在标记构造函数中设置标记样式更有意义。

要实时更改样式,请使用名为“标记”的 OpenLayers.Feature.Vector 标记之一并执行此操作。我们将矢量图层称为“层”。

marker.style.graphicZIndex = 13;
layer.redraw();
Run Code Online (Sandbox Code Playgroud)