我有一个带有多个标记的图层,图标相当大,所以它们重叠 . 通过 Map 一侧的列表,用户可以选择一个标记, Map 将平移(和缩放)到它 . 但它仍将落后于其他一些制造商 . 如何获得个体制造商z-index并设置它?获得最高使用的z-index并添加一个,我会很有用 . (另一个解决方案是将标记的总数添加到z-index)
标记(或特征)位于myLib.features数组中 . 控制台不显示任何z-index类型的功能 .
我无法为此找到合适的示例或api函数 .
EDIT:
我找到了这个例子:http://dev.openlayers.org/examples/ordering.html我真的不明白 . 不知何故,创建的特征通过某些符号化器获取图层给出的下一个z-index . 我不知道如何将这种静态排序变成动态排序 .
1 回答
试试这个:
首先,确保使用的是OpenLayers.Layer.Vector图层,而不是OpenLayers.Layer.Markers图层 . 显然,Markers层是旧闻,所有新开发都在Vector层完成 . 它有更多的功能 . (我自己浪费了一大堆时间用Markers图层) .
然后,每个标记都需要是OpenLayers.Feature.Vector对象 . 构造函数有三个参数,第三个参数称为样式 . 该样式用于设置图像属性,背景阴影,鼠标悬停文本和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图层 . 并忽略“选项”参数 .
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标记之一并执行此操作 . 让我们称之为矢量图层“层” .