OpenLayers标签问题

时间:2011-04-20 21:14:16

标签: openlayers labels

OpenLayers.Feature.Vector上的标签存在很大问题。当我使用Canvas渲染器时,所有标签都在externalGraphic的特征下。你在这里可以看到什么:

http://jsfiddle.net/67aaJ/

不知道如何强制将标签涂在标记上。使用SVG渲染器可以很容易地将标签放在标记上,但是在这种情况下,当有多个标记就位时,标签看起来很麻烦。它看起来像第一个渲染器绘制所有图形和所有标签。例如:

http://jsfiddle.net/6kXYh/1/

我正在寻找一个解决方案(渲染器并不重要)来显示带有标签但没有“标签颜色”的标记,假设我们在一个位置有5个标记,但是我希望看到最后添加的标记有不同的标记externalGraphic及其标签,以前的功能(和标签)应该在最后一个。

请帮忙!谢谢。

2 个答案:

答案 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