Class: VectorLayer

ol/layer/Vector~VectorLayer


import VectorLayer from 'ol/layer/Vector.js';

矢量数据在客户端以矢量方式渲染。此图层类型即使在动画期间也提供最准确的渲染。点和标签在旋转视图上保持直立。对于大量矢量数据,平移和缩放动画期间性能可能会下降。在这种情况下,请尝试 VectorImageLayer

注意选项中设置的任何属性都将作为 BaseObject 属性设置到图层对象上;例如,在选项中设置 title: 'My Title' 意味着 title 是可观察的,并具有 get/set 访问器。

new VectorLayer(options)

Name Type Description
className string (defaults to 'ol-layer')

设置到图层元素的 CSS 类名。

opacity number (defaults to 1)

不透明度 (0, 1)。

visible boolean (defaults to true)

可见性。

extent Extent | undefined

图层渲染的边界范围。 图层不会在此范围之外渲染。

zIndex number | undefined

图层渲染的 z-index。在渲染时,图层将按 Z-index 排序,然后按位置排序。当 undefined 时,添加到地图 layers 集合的图层假定 zIndex 为 0,或使用图层 setMap() 方法时为 Infinity

minResolution number | undefined

此图层可见的最小分辨率(含)。

maxResolution number | undefined

此图层可见的最大分辨率(不含)。

minZoom number | undefined

此图层可见的最小视图缩放级别(不含)。

maxZoom number | undefined

此图层可见的最大视图缩放级别(含)。

renderOrder Order函数 | undefined

渲染顺序。用于在渲染前对要素进行排序的函数。默认情况下,要素按创建顺序绘制。使用 null 可避免排序,但绘制顺序不确定。

renderBuffer number (defaults to 100)

渲染器从矢量数据源获取要素进行渲染或命中检测时使用的视口范围周围的缓冲区(以像素为单位)。建议值为最大符号、线宽或标签的大小。

source VectorSourceType | undefined

数据源。

map Map | undefined

将图层设置为地图上的覆盖层。地图不会在其图层集合中管理此图层,该图层将被渲染在顶层。这适用于临时图层。将图层添加到地图并由地图管理的标准方式是使用 map.addLayer()

declutter boolean | string | number (defaults to false)

去除图像和文本重叠。任何真值都将启用去除重叠。在同一图层中,先渲染的要素优先级更高。具有相同 declutter 值的所有图层将一起去除重叠。优先级由具有相同 declutter 值的图层的绘制顺序决定。图层堆栈中越高的图层优先级越高。要分别去除不同图层或图层组的重叠,请为 declutter 使用不同的真值。

style StyleLike | FlatStyleLike | null | undefined

图层样式。当设置为 null 时,仅渲染具有自身样式的要素。有关未设置时使用的默认样式,请参见 Style

background BackgroundColor | undefined

图层的背景颜色。如果未指定,则不会渲染背景。

updateWhileAnimating boolean (defaults to false)

当设置为 true 时,将在动画期间重新创建要素批次。这意味着矢量不会被裁剪显示,但对于大量矢量数据,此设置会影响性能。当设置为 false 时,将在没有动画活动时重新创建批次。

updateWhileInteracting boolean (defaults to false)

当设置为 true 时,将在交互期间重新创建要素批次。另见 updateWhileAnimating

properties 对象。<string, *> | undefined

任意可观察属性。可通过 #get()#set() 访问。

触发事件:

Subclasses

Extends

Observable Properties

Name Type Settable ObjectEvent type Description
extent Extent | undefined yes change:extent

图层范围。

maxResolution number yes change:maxresolution

图层的最大分辨率。

maxZoom number yes change:maxzoom

图层的最大缩放级别。

minResolution number yes change:minresolution

图层的最小分辨率。

minZoom number yes change:minzoom

图层的最小缩放级别。

opacity number yes change:opacity

图层的不透明度。

source SourceType | null yes change:source

图层数据源(如果尚未设置则为 null)。

visible boolean yes change:visible

图层 visible 属性的值。

zIndex number | undefined yes change:zindex

图层的 Z-index。

Methods

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

dispatchEvent(event){boolean | undefined} inherited

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

Name Type Description
event BaseEvent | string

事件对象。

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

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

getAttributions(view){Array.<string>} inherited

获取此图层数据源在给定视图下的归属信息。

Name Type Description
view View | ViewStateLayerStateExtent | undefined

View 或 FrameState。仅在图层未添加到地图时需要。

返回值:
此图层在给定视图下的归属信息。

getExtent(){Extent | undefined} inherited

返回图层的 范围,如果无论范围如何都可见则返回 undefined

返回值:
图层范围。

getFeatures(pixel){Promise<Array<要素Like>>} inherited

获取与视口上给定像素相交的最上层要素。返回一个解析为要素数组的 Promise。当检测到命中时,数组将包含最上层的要素,否则为空。

此方法使用的命中检测算法针对性能进行了优化,但不如 map.getFeaturesAtPixel() 中使用的算法准确。文本不被考虑,图标仅由其边界框表示而非精确图像。

Name Type Description
pixel Pixel

像素。

返回值:
解析为要素数组的 Promise。

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回值:
属性名列表。

getMaxResolution(){number} inherited

返回图层的最大分辨率。如果图层未设置最大分辨率则返回 Infinity。

返回值:
图层的最大分辨率。

getMaxZoom(){number} inherited

返回图层的最大缩放级别。如果图层未设置最大缩放则返回 Infinity。

返回值:
图层的最大缩放级别。

getMinResolution(){number} inherited

返回图层的最小分辨率。如果图层未设置最小分辨率则返回 0。

返回值:
图层的最小分辨率。

getMinZoom(){number} inherited

返回图层的最小缩放级别。如果图层未设置最小缩放则返回 -Infinity。

返回值:
图层的最小缩放级别。

getOpacity(){number} inherited

返回图层的不透明度(0 到 1 之间)。

返回值:
图层的不透明度。

getProperties(){NoInfer.<Properties>} inherited

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

返回值:
对象。

getRevision(){number} inherited

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

返回值:
版本号。

getSource(){SourceType | null} inherited

获取图层数据源。

返回值:
图层数据源(如果尚未设置则为 null)。

getStyle(){StyleLike | FlatStyleLike | null | undefined} inherited

获取要素的样式。返回构造时传递给 style 选项或 setStyle 方法的值。

返回值:
图层样式。

getStyle函数(){Style函数 | undefined} inherited

获取样式函数。

返回值:
图层样式函数。

getVisible(){boolean} inherited

返回此图层 visible 属性的值。要确定图层在地图上是否可见,请改用 isVisible()

返回值:
图层 visible 属性的值。

getZIndex(){number | undefined} inherited

返回图层的 Z-index,用于在渲染前排列图层顺序。如果图层未管理则返回 undefined。

返回值:
图层的 Z-index。

isVisible(view){boolean} inherited

图层在地图视图中可见,即在其最小/最大分辨率或缩放级别和范围内,未设置为 visible: false,且不在设置为 visible: false 的图层组内。

Name Type Description
view View | ViewStateLayerStateExtent | undefined

View 或 FrameState。仅在图层未添加到地图时需要。

返回值:
图层在地图视图中可见。

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

监听器函数。

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

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

setDeclutter(declutter) inherited

Name Type Description
declutter boolean | string | number

去除图像和文本重叠。

setExtent(extent) inherited

设置图层可见的范围。如果为 undefined,图层在所有范围中都可见。

Name Type Description
extent Extent | undefined

图层的范围。

将图层设置为在地图上渲染在其他图层之上。地图不会在其图层集合中管理此图层。这适用于临时图层。要从地图中移除非托管图层,请使用 #setMap(null)

要将图层添加到地图并由地图管理,请改用 addLayer

Name Type Description
map Map | null

地图。

setMaxResolution(maxResolution) inherited

设置图层可见的最大分辨率。

Name Type Description
maxResolution number

图层的最大分辨率。

setMaxZoom(maxZoom) inherited

设置图层可见的最大缩放(不含)。注意,图层可见性的缩放级别基于视图缩放级别,这可能与瓦片数据源的缩放级别不同。

Name Type Description
maxZoom number

图层的最大缩放。

setMinResolution(minResolution) inherited

设置图层可见的最小分辨率。

Name Type Description
minResolution number

图层的最小分辨率。

setMinZoom(minZoom) inherited

设置图层可见的最小缩放(含)。注意,图层可见性的缩放级别基于视图缩放级别,这可能与瓦片数据源的缩放级别不同。

Name Type Description
minZoom number

图层的最小缩放。

setOpacity(opacity) inherited

设置图层的不透明度,允许值范围为 0 到 1。

Name Type Description
opacity number

图层的不透明度。

setProperties(values, silent) inherited

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

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

值。

silent boolean | undefined

更新但不触发事件。

setSource(source) inherited

设置图层数据源。

Name Type Description
source SourceType | null

图层数据源。

设置要素的样式。可以是单个样式对象、样式数组,或接受要素和分辨率并返回样式数组的函数。如果设置为 null,图层没有样式(null 样式),因此只有具有自身样式的要素会在图层中渲染。不带参数调用 setStyle() 可重置为默认样式。有关默认样式的信息,请参见 ol/style/Style 模块

如果您的图层使用静态样式,可以使用 扁平样式 对象字面量,而不必使用 Style 和符号化构造函数(FillStroke 等):

vectorLayer.setStyle({
  "fill-color": "yellow",
  "stroke-color": "black",
  "stroke-width": 4
})
Name Type Description
style StyleLike | FlatStyleLike | null | undefined

图层样式。

setVisible(visible) inherited

设置图层的可见性(truefalse)。

Name Type Description
visible boolean

图层的可见性。

setZIndex(zindex) inherited

设置图层的 Z-index,用于在渲染前排列图层顺序。 默认 Z-index 为 0。

Name Type Description
zindex number

图层的 z-index。

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

取消设置但不触发事件。