# IControl

添加到地图的交互式控件界面。这是实现者建模的规范:它不是导出的方法或类。

控件必须实现onAddonRemove,并且必须拥有一个元素,通常是一个div元素。要使用默认控件样式,请将vjmap-ctrl类添加到控件的节点。

# Examples

// Control implemented as ES6 class
class HelloWorldControl {
    onAdd(map) {
        this._map = map;
        this._container = document.createElement('div');
        this._container.className = 'vjmap-ctrl';
        this._container.textContent = 'Hello, world';
        return this._container;
    }

    onRemove() {
        this._container.parentNode.removeChild(this._container);
        this._map = undefined;
    }
}

// Control implemented as ES5 prototypical class
function HelloWorldControl() { }

HelloWorldControl.prototype.onAdd = function(map) {
    this._map = map;
    this._container = document.createElement('div');
    this._container.className = 'vjmap-ctrl';
    this._container.textContent = 'Hello, world';
    return this._container;
};

HelloWorldControl.prototype.onRemove = function () {
     this._container.parentNode.removeChild(this._container);
     this._map = undefined;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# onAdd

在地图上注册一个控件并让它有机会注册事件侦听器和资源。该方法由Map#addControl 内部调用。

# Parameters

  • map **映射**此控件将添加到的映射

返回**HTMLElement**控件的容器元素。这应该由控件创建并由 onAdd 返回而不附加到 DOM:地图将根据需要将控件的元素插入到 DOM 中。

# onRemove

取消注册地图上的控件并让它有机会分离事件侦听器和资源。该方法由Map#removeControl 内部调用。

# Parameters

  • map **映射**此控件将从中删除的映射

返回**undefined**此方法不需要返回值

# getDefaultPosition

(可选)为此控件提供默认位置。如果实现了该方法并且没有position 参数的情况下调用Map#addControl,则 getDefaultPosition 返回的值将用作控件的位置。

返回**string**一个控件位置,它是 addControl 中有效值之一。