# IControl
添加到地图的交互式控件界面。这是实现者建模的规范:它不是导出的方法或类。
控件必须实现onAdd
和onRemove
,并且必须拥有一个元素,通常是一个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
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 中有效值之一。