Class: Control

ol/control/Control~Control


import Control from 'ol/control/Control.js';

控件是屏幕上固定位置中具有 DOM 元素的可见小部件。它们可以涉及用户输入(按钮),也可以仅提供信息;位置使用 CSS 确定。默认情况下,它们放置在 CSS 类名为 ol-overlaycontainer-stopevent 的容器中,但可以使用任何外部 DOM 元素。

这是控件的基类。你可以通过创建带监听器的元素并创建实例来将其用于简单的自定义控件:

const myControl = new Control({element: myElement});

然后将其添加到地图中。

将此作为控件而非简单独立 DOM 元素的主要优势是,系统会为你处理阻止事件传播。控件也将是 Collection 中的对象,因此你可以使用它们的方法。

你也可以为此基类扩展自己的控件类。参见 examples/custom-controls 中关于如何执行此操作的示例。

new Control(options)

Name Type Description
element HTMLElement | undefined

元素是控件的容器元素。仅在开发自定义控件时需要指定。

render function | undefined

控件需要重新渲染时调用的函数。此函数在 requestAnimationFrame 回调中调用。

target HTMLElement | string | undefined

如果希望控件在地图视口之外渲染,请指定目标。

触发事件:

Subclasses

Extends

Methods

增加修订计数器并分发 'change' 事件。

dispatchEvent(event){boolean | undefined} inherited

分发事件并调用所有监听此类型事件的监听器。事件参数可以是一个字符串或一个 具有 type 属性的对象。

Name Type Description
event BaseEvent | string

事件对象。

返回值:
如果有人在事件对象上调用了 preventDefault 或任何监听器返回 false,则返回 false

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回值:
属性名列表。

getMap(){Map | null}

获取与此控件关联的地图。

返回值:
地图。

getProperties(){NoInfer.<Properties>} inherited

获取包含所有属性名和值的对象。

返回值:
对象。

getRevision(){number} inherited

获取此对象的版本号。 每次对象被修改时,其版本号将递增。

返回值:
版本号。

on(type, listener){EventsKey | Array<EventsKey>} inherited

监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

once(type, listener){EventsKey | Array<EventsKey>} inherited

仅监听一次特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

render(mapEvent)

渲染控件。

Name Type Description
mapEvent MapEvent

地图事件。

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

从当前地图移除控件并将其附加到新地图。传入 null 仅从当前地图移除控件。子类可以在此设置事件处理程序以获取地图更改的通知。

Name Type Description
map Map | null

地图。

setProperties(values, silent) inherited

设置一组键值对。 注意,这会更改任何现有属性并添加新属性(不会移除任何现有属性)。

Name Type Description
values Partial.<NoInfer.<Properties>>

值。

silent boolean | undefined

更新但不触发事件。

setTarget(target)

此函数用于设置控件的目标元素。如果在控件添加到地图之后调用(即在控件上调用了 setMap 之后),则不会产生任何效果。如果在传递给控件构造函数的选项中没有设置 target,并且也没有调用 setTarget,则控件将被添加到地图的叠加容器中。

Name Type Description
target HTMLElement | string

目标。

un(type, listener) inherited

取消监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

unset(key, silent) inherited

取消设置一个属性。

Name Type Description
key string

键名。

silent boolean | undefined

取消设置但不触发事件。