4

我试图在 Openlayers 中的图层上绘制字符串/字符(例如显示路线-> 在路线附近绘制描述或楼层号)。问题:可以将标签添加到 Openlayers.Vector,但我的应用程序有一个包含多个几何图形的向量,每个应该使用不同的字符串呈现。也许存在一些像这样的几何: layer.addFeature(new Openlayers.StringGeometry("text", x,y) 左右。我找不到任何东西。

有人可以给我一个提示吗?

4

1 回答 1

10

要将自定义文本标签添加到 Vector 层的功能,我建议如下:

1)StyleMap像这样添加到您的矢量图层:

var vectorLayer = new OpenLayers.Layer.Vector("Vector", 
{
    styleMap: new OpenLayers.StyleMap(            
    {
        label : "${labelText}",                    
        fontColor: "blue",
        fontSize: "12px",
        fontFamily: "Courier New, monospace",
        fontWeight: "bold",
        labelAlign: "lc",
        labelXOffset: "14",
        labelYOffset: "0",
        labelOutlineColor: "white",
        labelOutlineWidth: 3
    })
});

请注意,labelText在此样式图中,此标签的文本将取自相应的特征属性。

2)对于您添加到图层的每个功能,指定已labelText定义的属性:

var features = [];
var pt = new OpenLayers.Geometry.Point(0, 0);
features.push(new OpenLayers.Feature.Vector(pt, {labelText: "This is my label"}));
vectorLayer.addFeatures(features);

此解决方案的唯一限制是您必须为每个点添加功能并且无法使用OpenLayers.Geometry.MultiPoint.

于 2013-07-17T08:22:45.967 回答