Вы на правильном пути.Вы можете установить новую метку для всех объектов слоя следующим образом:
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}";
Каждая функция имеет набор атрибутов.В этом случае значение атрибута feature_name
будет отображаться как метка.Чтобы изменить значение метки для объекта, просто измените значение атрибута для этого объекта, а затем, конечно, вызовите redraw()
на слое.