OpenLayers复选框删除标签
问题描述:
我有一个问题的理解,我有一个点向量和它上面的标签告诉它的$name
。OpenLayers复选框删除标签
我现在需要的是一个复选框,当取消选中时隐藏标签。
toggleLabel: function(element) {
if(element.value == "showLabel"){
this.viewModel.label.setVisibility(false);
}
else {
}
},
然后在我的HTML我得到了下面的复选框
<input type='checkbox' name='overlay' value='showLabel' id='showLabels' onclick='toggleLabel(this);' autocomplete='off' checked></input>
我缺少什么?
编辑:我不想删除整个图层,因为我仍然想要矢量(地图上的点),但只是隐藏标签集。 setvisibility不能在标签上工作吗?
答
我以前没见过viewModel的东西,但是:为了隐藏标签,你可以将样式的标签设置为空字符串;并将其恢复为显示标签。
// hide label
haloLayer.styleMap.styles.default.defaultStyle.label = '';
haloLayerLayer.redraw();
// show label
haloLayer.styleMap.styles.default.defaultStyle.label = "${" + ... + "}";
haloLayerLayer.redraw();
+0
谢谢,我只是好奇我在哪里设置这个,在复选框的电话? – WeeklyDad 2013-03-01 14:43:35
+0
是的,在复选框调用时执行它 - 但我不确定范围,可能不能在'this.viewModel.label'中使用'this' – user1702401 2013-03-01 14:51:17
请添加代码,在那里你定义样式($名) - 你使用StyleMap设定为层,直接添加样式功能等 – user1702401 2013-03-01 13:41:24
'VAR defaultStyle = OpenLayers.Util.extend({}的OpenLayers。 Feature.Vector.style [ '缺省']); defaultStyle.label =“$ {”+ this.viewModel.label +“}”;' – WeeklyDad 2013-03-01 14:08:00
PS:假设是两行,但您明白了。 – WeeklyDad 2013-03-01 14:11:19