在OpenLayers中更改标记的z-index

9
我有一个带有多个标记的图层,标记具有相对较大的图标,因此它们会重叠。通过地图侧面的列表,用户可以选择一个标记,地图将平移(和缩放)到该标记。但是它仍然在其他标记的后面。
如何获得单个标记的z-index并设置它?获取最高使用的z-index并添加一个将非常有用。 (另一种解决方案是将标记的总数添加到z-index中)
标记(或要素)位于myLib.features数组中。控制台没有显示任何z-index类型的功能。
我找不到适当的示例或API函数来实现这一点。
编辑:
我找到了这个示例:http://dev.openlayers.org/examples/ordering.html 我真的不理解它。以某种符号化方式,创建的要素会获取图层给定的下一个z-index。我不知道如何将这种静态排序转换成动态排序。
1个回答

3

试试这个:

首先,确保你正在使用OpenLayers.Layer.Vector层,而不是OpenLayers.Layer.Markers层。显然,Markers层已经过时了,所有新的开发都在Vector层中进行。它具有更多的功能。(我自己浪费了很多时间在Markers层上)。

然后,你的每个标记都需要是一个OpenLayers.Feature.Vector对象。构造函数需要三个参数,第三个参数被称为样式。样式是设置图像属性、背景阴影、鼠标悬停文本和z-index的地方,其中z-index的属性名为"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函数将“标记”(即Vector)添加到您的Vector图层中。只需忽略“options”参数即可。

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

我发现那个示例页面也很困惑。它在Vector层的构造函数中设置了所有标记的样式(作为默认值,如果省略标记样式时使用),而不是在标记的构造函数中设置标记样式。我认为,在标记构造函数中设置标记样式更有意义。
要实时更改样式,请取一个名为“marker”的OpenLayers.Feature.Vector标记,然后执行以下操作。让我们称Vector层为“layer”。
marker.style.graphicZIndex = 13;
layer.redraw();

这个不起作用,但这个可以:https://gis.stackexchange.com/a/80574/8280 - Matthew Lock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接