OpenLayers.Feature.Vector上的标签存在很大问题。当我使用Canvas渲染器时,所有标签都在externalGraphic的特征下。你在这里可以看到什么:
不知道如何强制将标签涂在标记上。使用SVG渲染器可以很容易地将标签放在标记上,但是在这种情况下,当有多个标记就位时,标签看起来很麻烦。它看起来像第一个渲染器绘制所有图形和所有标签。例如:
我正在寻找一个解决方案(渲染器并不重要)来显示带有标签但没有“标签颜色”的标记,假设我们在一个位置有5个标记,但是我希望看到最后添加的标记有不同的标记externalGraphic及其标签,以前的功能(和标签)应该在最后一个。
请帮忙!谢谢。
答案 0 :(得分:0)
OpenLayers没有我所知道的任何标签冲突检测。我想你必须自己做,或者依靠后端的一些绘图软件。
答案 1 :(得分:0)
为回答一个非常古老的问题道歉,但对于其他人提出这个问题,另一种解决方案可能是使用群集策略并标记群集。对于具有多个功能的群集,您可以使用逗号分隔或\ n分开。例如这里的代码:
var style = new OpenLayers.Style({
label: "${type}",
fillColor: "#ffcc66",
fillOpacity: 0.8,
strokeColor: "#cc6633",
strokeWidth: 2,
strokeOpacity: 0.8
}, {
context: {
type: function(feature) {
// concatenate labels and return
return "the label";
}
}
});
来自: http://openlayers.org/dev/examples/strategy-cluster.html