更改 openlayers 中标记的 z-index

Posted

技术标签:

【中文标题】更改 openlayers 中标记的 z-index【英文标题】:Change z-index of marker in openlayers 【发布时间】:2012-06-08 15:13:52 【问题描述】:

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

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

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

编辑:

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

【问题讨论】:

【参考方案1】:

试试这个:

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

然后,您的每个标记都需要是一个 OpenLayers.Feature.Vector 对象。构造函数接受三个参数,其中第三个称为样式。样式是您设置图像属性、背景阴影、鼠标悬停文本和 z-index 的地方,它的属性名称为“graphicZIndex”。我想这就是你要找的。​​p>

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();

【讨论】:

这没有用,但它做到了gis.stackexchange.com/a/80574/8280

以上是关于更改 openlayers 中标记的 z-index的主要内容,如果未能解决你的问题,请参考以下文章

在openlayers中,如何在输入地名之后,在地图的对应的位置就标记出来呢?该怎么实现?

OpenLayers之文字标记

Openlayers 标记偏移(不在正确的位置)

openlayers简单的鼠标悬停在标记上

使用 OpenLayers,删除标记层和弹出窗口的正确方法是啥?

php OpenStreetMap和OpenLayers:使用标记创建地图