Class: ScaleLine

ol/control/ScaleLine~ScaleLine


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

一个显示大致 y 轴距离的控件,根据视口中心计算。对于等角投影(如 EPSG:3857,OpenLayers 的默认视图投影),比例尺在所有方向上都有效。当无法在视图投影中计算视口中心像素的 y 轴距离时,不会显示比例线。默认情况下,比例线将显示在地图的左下角,但可以通过 CSS 选择器 .ol-scale-line 进行更改。当指定 bartrue 时,将渲染比例尺条而非比例线。要进行比例线的笛卡尔测量,需要将投影的 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)

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

text boolean (defaults to false)

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

dpi number | undefined

输出设备(如打印机)的 dpi。仅在 bartrue 时适用。如果未定义,将假定 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

取消设置但不触发事件。