Vector 在多边形编辑模式下显示重复标签

Vector 在多边形编辑模式下显示重复标签,vector,openlayers,polygon,Vector,Openlayers,Polygon,当用户完成绘制多边形时,多边形标签将使用计算的面积进行更新 polygonLayer.styleMap.styles.default.defaultStyle.label = "xxx"; polygonLayer.redraw(); 这将实现这一点,没有问题 每次多边形的区域更新时,我都称这两条线。但是,如果使用“编辑”控件编辑多边形,则更新的区域将显示在所有节点上 如果用户完成了编辑并切换到其他节点,一切都会恢复正常。我曾尝试在用户单击编辑控件时将标签设置为空字符串,但这只会隐藏主标签

当用户完成绘制多边形时,多边形标签将使用计算的面积进行更新

polygonLayer.styleMap.styles.default.defaultStyle.label = "xxx";
polygonLayer.redraw();
这将实现这一点,没有问题

每次多边形的区域更新时,我都称这两条线。但是,如果使用“编辑”控件编辑多边形,则更新的区域将显示在所有节点上

如果用户完成了编辑并切换到其他节点,一切都会恢复正常。我曾尝试在用户单击编辑控件时将标签设置为空字符串,但这只会隐藏主标签(位于中间的标签),但节点上的标签仍然存在

    $('.olControlModifyFeatureItemInactive').click(function() {
            polygonLayer.styleMap.styles.default.defaultStyle.label = "";
            polygonLayer.redraw();
    });
发生了什么?如何防止重复的面积值出现?

请查看

您应该能够在样式图上设置
上下文
,并且仅在标签未处于编辑模式时返回标签:

var styleMap=new OpenLayers.styleMap(new OpenLayers.Style({
标签:“${getLabel}”
//你的其他符号属性在这里
},{上下文:{
getLabel:函数(功能){
如果(!mycontrolIsNotInEditMode){
返回feature.attributes.label;
}
}
}}
));

@Kaung:我的回答解决了你的问题吗?我在这里更详细地回答了同样的问题: