IControl
Интерфейс для интерактивных элементов управления, добавляемых на карту. Это спецификация для разработчиков, реализующих данный интерфейс; это не экспортируемый метод или класс.
Элементы управления должны реализовывать onAdd и onRemove и содержать собственный элемент, которым часто является элемент div. Чтобы использовать стили элементов управления по умолчанию в MapLibre GL JS, добавьте класс maplibregl-ctrl к узлу элемента управления.
Пример
class HelloWorldControl: IControl {
onAdd(map) {
this._map = map;
this._container = document.createElement('div');
this._container.className = 'maplibregl-ctrl';
this._container.textContent = 'Hello, world';
return this._container;
}
onRemove() {
this._container.remove();
this._map = undefined;
}
}
Методы
onAdd()
onAdd(
map:Map):HTMLElement
Регистрирует элемент управления на карте и позволяет ему зарегистрировать обработчики событий и ресурсы. Этот метод вызывается внутри Map.addControl.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
map | Map | карта, на которую будет добавлен этот элемент управления |
Возвращает
HTMLElement
Элемент-контейнер элемента управления. Он должен быть создан элементом управления и возвращён методом onAdd, не будучи добавленным в DOM: при необходимости карта сама вставит элемент управления в DOM.
onRemove()
onRemove(
map:Map):void
Отменяет регистрацию элемента управления на карте и позволяет ему отсоединить обработчики событий и освободить ресурсы. Этот метод вызывается внутри Map.removeControl.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
map | Map | карта, с которой будет удалён этот элемент управления |
Возвращает
void
Свойства
getDefaultPosition?
readonlyoptionalgetDefaultPosition?: () =>ControlPosition
Необязательно задаёт позицию этого элемента управления по умолчанию. Если реализован этот метод и Map.addControl вызывается без параметра position, в качестве позиции элемента управления используется значение, возвращаемое getDefaultPosition.
Возвращает
позиция элемента управления — одно из значений, допустимых в addControl.
© MapLibre contributors
Licensed under the 3-Clause BSD License.
https://maplibre.org/maplibre-gl-js/docs/API/interfaces/IControl/