首页 / 浏览问题 / 云GIS / 问题详情
控件添加和移除
70EXP 2017年04月12日
getControl 通过id值获取控件对象。
getControlsBy 根据给定的属性和匹配字符串匹配到的控件列表。
getControlsByClass

想动态对控件的添加隐藏,看到有这三个方法,但好像不太好用,我创建的代码如下,:

var panZoomBar = new SuperMap.Control.PanZoomBar();
var scaleLine = new SuperMap.Control.ScaleLine();
function addMapControl() {
    csm.mapContainer.addControls([panZoomBar, scaleLine]);
}

移除的代码如下:

function removeMapControl() {
    csm.mapContainer.removeControl(panZoomBar);
    csm.mapContainer.removeControl(scaleLine);

}

但是好像移除removeMapControl()后再添加addMapControl(),就添加不上了,并且有时候执行两边addMapControl()方法,会添加两遍上去,我如何判断这控件存不存在,如果存在的话就添加,不存在的话就不添加

1个回答

您好!您可以使用activate和deactivate的方法来实现激活和注销控件:

1,695EXP 2017年04月12日
激活和注销能实现控件的从地图上显示和隐藏的操作吗?

removeControl方法并不会直接使控件失效,所以您使用removeControl后再用addMapControl就不会添加控件。使用removeControl并调用deactivate后再使用addMapControl就能够从新添加控件。

我如何判断这个控件是否存在地图上
...