Vector 在绘制多边形向量后,如何在OpenLayers中更新该向量的标签?

Vector 在绘制多边形向量后,如何在OpenLayers中更新该向量的标签?,vector,openlayers,Vector,Openlayers,我对OpenLayers很陌生。现在,我有一个应用了一些样式的多边形向量和一个标签 var style = $.extend(true, {}, OpenLayers.Feature.Vector.style['default']); style.pointRadius = 15; style.label = "My Polygon"; style.fillColor = #f00; style.strokeColor = #000; var styleMap = new OpenLayers

我对OpenLayers很陌生。现在,我有一个应用了一些样式的多边形向量和一个标签

var style = $.extend(true, {}, OpenLayers.Feature.Vector.style['default']);
style.pointRadius = 15;
style.label = "My Polygon";
style.fillColor = #f00;
style.strokeColor = #000;

var styleMap = new OpenLayers.StyleMap({"default" : style});

var polygonLayer = new OpenLayers.Layer.Vector("Polygon Layer", {styleMap: styleMap});
在完成一些处理后的某个时刻,我希望将结果显示为标签。如何更新标签?我想应该是这样的,但不是这样的

polygonLayer.options.styleMap.styles.label = "Updated label";

提前谢谢。

你走对了。可以为图层中的所有要素设置新标签,如下所示:

polygonLayer.styleMap.styles.default.defaultStyle.label = "new label";
polygonLayer.redraw();
正如您所见,在设置新值后调用
redraw()
方法非常重要

这就是更改图层中所有要素的标签的方式。但通常需要为每个功能设置新标签。要实现这一点,在创建pollygonLayer时应执行以下操作:

var style = $.extend(true, {}, OpenLayers.Feature.Vector.style['default']);
style.label = "${feature_name}";

每个特征都有一组属性。在这种情况下,属性
特征\u name
的值将显示为标签。要更改每个特征的标签值,只需更改该特征上属性的值,然后在图层上调用
redraw()

太好了,谢谢。这种解释应该放在文档中!