Class: ScaleLine

ol/control/ScaleLine~ScaleLine


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

一个显示大致 y 轴距离的控件,根据视口中心计算。对于等角投影(如 EPSG:3857,OpenLayers 的默认视图投影),比例尺在所有方向上都有效。当无法在视图投影中计算视口中心像素的 y 轴距离时,不会显示比例线。默认情况下,比例线将显示在地图的左下角,但可以通过 CSS 选择器 .ol-scale-line 进行更改。当指定 bar 为 true 时,将渲染比例尺条而非比例线。要进行比例线的笛卡尔测量,需要将投影的 getPointResolution 方法设置为简单地返回输入值,例如 projection.setGetPointResolution(r => r);

new ScaleLine(options)

Name Type Description
className string | undefined

CSS 类名。当配置 bar: true 时,默认为 ol-scale-bar。 否则默认为 ol-scale-line。

minWidth number (defaults to 64)

OGC 默认 dpi 下的最小宽度(像素)。宽度将根据使用的 dpi 进行调整。

maxWidth number | undefined

OGC 默认 dpi 下的最大宽度(像素)。宽度将根据使用的 dpi 进行调整。

render function | undefined

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

target HTMLElement | string | undefined

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

units Units (defaults to 'metric')

单位。

bar boolean (defaults to false)

渲染比例尺条而非线条。

steps number (defaults to 4)

比例尺条使用的步数。使用偶数效果最佳。仅在 bar 为 true 时适用。

text boolean (defaults to false)

在比例尺条上方渲染文本比例尺。仅在 bar 为 true 时适用。

dpi number | undefined

输出设备(如打印机)的 dpi。仅在 bar 为 true 时适用。如果未定义,将假定 OGC 默认屏幕像素大小为 0.28mm。

触发事件:

Extends

Observable Properties

Name Type Settable ObjectEvent type Description
units Units yes change:units

比例线中使用的单位。

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

获取对象属性名列表。

返回值:
属性名列表。

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

返回值:
地图。

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

监听器函数。

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

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

指定输出设备(如打印机)的 dpi。

Name Type Description
dpi number | undefined

输出设备的 dpi。

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

Name Type Description
map Map | null

地图。

setProperties(values, silent) inherited

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

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

值。

silent boolean | undefined

更新但不触发事件。

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

Name Type Description
target HTMLElement | string

目标。

setUnits(units)

设置比例线中使用的单位。

Name Type Description
units Units

比例线中使用的单位。

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

取消设置但不触发事件。