前几年用的方法如下:
//显示label
g_marker[SetIndex].setLabel({//label默认蓝框白底左上角显示,样式className为:amap-marker-label
offset: new AMap.Pixel(20, -25),//修改label相对于maker的位置
content: "标签名称",
direction: 'right' //设置文本标注方位
});
//隐藏只需要将content设置为空
g_marker[ResetIndex].setLabel({//label默认蓝框白底左上角显示,样式className为:amap-marker-label
content: null
});
但是上面这个方法不知道在今年什么时候无效了,表现为单步模式下,可以隐藏label,全速运行无法隐藏。
切换选择点后没有隐藏之前的。
通过查看高德地图api发现最近有更新,通过尝试,发现只要将content设置为空就不生效,应该是内部做了判断,判断传入参数是否为null,为null则不更新,测试发现可以通过class属性修改。
首先写2个样式,一个是正常显示的,一个用于隐藏,如下:
<style>
.amap-marker-label {
border: 0;
background-color: #aacefa;
}
.info {/*正常标签样式*/
position: relative;
top: 0;
right: 0;
min-width: 0;
}
.hide_info { /*隐藏标签样式*/
display: none;
}
</style>
代码如下:
//显示,增加了样式
g_marker[SetIndex].setLabel({//label默认蓝框白底左上角显示,样式className为:amap-marker-label
offset: new AMap.Pixel(20, -25),//修改label相对于maker的位置
//content: g_marker[SetIndex].NAME
content: "<div class='info'>" + g_marker[SetIndex].NAME + "</div>",
direction: 'right' //设置文本标注方位
});
//隐藏
g_marker[ResetIndex].setLabel({//label默认蓝框白底左上角显示,样式className为:amap-marker-label
content: "<div class='hide_info'></div>"
});
现在切换后可以像以前一样,正常隐藏上一个label了。