类:矢量层

ol/layer/Vector~矢量图层


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

矢量数据在客户端以矢量形式进行渲染。即使在动画期间,此图层类型也能实现最精确的渲染效果,且点与标签在旋转视图中保持直立。然而,当矢量数据量极大时,平移和缩放动画的性能可能会下降。此时,请尝试 VectorImageLayer

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

new VectorLayer(options)

Name Type 描述
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, a zIndex对于添加到地图的图层,假定值为0。layers集合,或Infinity当图层的setMap()采用了该方法。

minResolution number | undefined

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

maxResolution number | undefined

最大分辨率(不包括),低于该分辨率时该图层可见。

minZoom number | undefined

当视图缩放级别高于最小视图缩放级别(不包括)时,图层可见。

maxZoom number | undefined

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

renderOrder OrderFunction | 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 Object.<string, *> | undefined

任意可观察属性。可以通过以下方式访问#get()#set().

触发事件:

子类

继承

可观察属性

Name Type 可设置 ObjectEvent type 描述
extent Extent | undefined 是的 change:extent

图层范围。

maxResolution number 是的 change:maxresolution

图层的最大分辨率。

maxZoom number 是的 change:maxzoom

图层的最大缩放级别。

minResolution number 是的 change:minresolution

图层的最小分辨率。

minZoom number 是的 change:minzoom

图层的最小缩放级别。

opacity number 是的 change:opacity

图层不透明度。

source SourceType | null 是的 change:source

图层源(或null如果尚未设置。

visible boolean change:visible

其值visible图层属性。

zIndex number | undefined 是的 change:zindex

图层的Z索引。

方法

递增修订计数器并触发 'change' 事件。

dispatchEvent(event){boolean | undefined} inherited

触发一个事件,并调用所有监听该类型事件的侦听器。事件参数可以是字符串,也可以是具有 type 属性的对象。

Name Type 描述
event BaseEvent | string

事件对象。

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

获取值。

Name Type 描述
key string

键名。

返回:
值。

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

获取给定视图下该图层源的归属信息。

Name Type 描述
view View | ViewStateLayerStateExtent | undefined

视图或FrameState仅当图层未添加到地图中时才需要。

返回:
在当前视图下,该图层的归属信息。

getExtent(){Extent | undefined} inherited

若图层无论范围如何均可见,则返回 undefined;否则返回图层的 extent

返回:
图层范围

getFeatures(pixel){Promise<Array<FeatureLike>>} inherited

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

此方法使用的拾取算法为提升性能而优化,但不如 map.getFeaturesAtPixel() 中使用的算法精确。该算法不检测文本内容,图标仅以其边界框而非精确图像进行表示。

Name Type 描述
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(){Object.<string, *>} inherited

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

返回:
对象。

getRevision(){number} inherited

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

返回:
修订。

getSource(){SourceType | null} inherited

获取图层源。

返回:
图层源(若未设置,则为 null)。

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

获取要素的样式。返回在构造时通过style选项或setStyle方法传入的任何内容。

返回:
图层样式。

getStyleFunction(){StyleFunction | 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 描述
view View | ViewStateLayerStateExtent | undefined

查看或FrameState仅当图层未添加到地图时才需要。

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

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

监听特定类型的事件。

Name Type 描述
type string | Array.<string>

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

listener function

监听器功能。

返回:
监听器的唯一键。若以事件类型数组作为首个参数调用,则返回值为键数组。

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

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

返回:
监听器的唯一键。若以事件类型数组作为首个参数调用,则返回键的数组。

set(key, value, silent) inherited

设置值。

Name Type 描述
key string

键名

value *

值。

silent boolean | undefined

更新而不触发事件。

setDeclutter(declutter) inherited

Name Type 描述
declutter boolean | string | number

清理图像和文本。

setExtent(extent) inherited

设置图层的可见范围。如果 undefined,则图层在任何范围内均可见。

Name Type 描述
extent Extent | undefined

图层的范围

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

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

Name Type 描述
map Map | null

地图.

setMaxResolution(maxResolution) inherited

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

Name Type 描述
maxResolution number

图层的最大分辨率。

setMaxZoom(maxZoom) inherited

设置图层可见的最大缩放级别(不包括该级别)。请注意,图层可见的缩放级别基于视图缩放级别,而视图缩放级别可能与瓦片源缩放级别不同。

Name Type 描述
maxZoom number

图层的最大缩放级别。

setMinResolution(minResolution) inherited

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

Name Type 描述
minResolution number

图层的最小分辨率。

setMinZoom(minZoom) inherited

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

Name Type 描述
minZoom number

图层的最小缩放级别。

setOpacity(opacity) inherited

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

Name Type 描述
opacity number

图层透明度。

setProperties(values, silent) inherited

设置键值对集合。请注意,此操作会修改现有属性并添加新属性(不会删除任何现有属性)。

Name Type 描述
values Object.<string, *>

值。

silent boolean | undefined

更新时不触发事件。

setSource(source) inherited

设置图层数据源。

Name Type 描述
source SourceType | null

图层源。

设置要素的样式。这可以是一个单独的样式对象、一个样式数组,或一个接收要素和分辨率作为参数并返回样式数组的函数。如果设置为 null,则图层无样式(null 样式),因此仅具有自身样式的要素将在该图层中渲染。调用不带参数的 setStyle() 以重置为默认样式。有关默认样式的详细信息,请参阅 the ol/style/Style module

如果图层使用静态样式,可以使用 flat style 对象字面量,而非使用 Style 和符号化构造函数(FillStroke 等):

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

图层样式。

setVisible(visible) inherited

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

Name Type 描述
visible boolean

图层的可见性。

setZIndex(zindex) inherited

设置图层的Z索引,用于在渲染之前对图层进行排序。默认 Z 索引为 0。

Name Type 描述
zindex number

图层的z-index。

un(type, listener) inherited

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

unset(key, silent) inherited

移除属性。

Name Type 描述
key string

键名。

silent boolean | undefined

在不触发事件的情况下取消设置。