0

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

http://jsfiddle.net/67aaJ/

不知道如何强制将标签涂在标记上。使用 SVG 渲染器在标记上放置标签是否容易,但在这种情况下,当存在多个标记时,标签看起来很乱。看起来第一个渲染器绘制所有图形而不是所有标签。例子:

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

我正在寻找一种解决方案(渲染器无关紧要)来显示带有标签但没有“标签 colisions”的标记,假设我们在一个位置有 5 个标记但具有不同的标签,我希望看到最后添加的功能 externalGraphic 及其标签,以前的特征(和标签)应该在最后一个之下。

请帮忙!谢谢你。

4

2 回答 2

0

OpenLayers 没有我知道的任何标签碰撞检测。我想你必须自己做或者依赖后端的一些地图软件。

于 2011-04-21T10:39:43.347 回答
0

很抱歉回答了一个非常古老的问题,但对于其他人提出这个问题,另一种解决方案可能是使用集群策略并标记集群。对于具有 1 个以上功能的集群,您可以用逗号分隔或 \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

于 2013-10-16T00:03:54.190 回答