经纬志
首页 / OpenLayers / API 文档

ScaleLine

先看结论

比例尺控件。按当前分辨率换算并绘制一条带刻度的长度尺,随缩放自动更新数值。

最后验证 2026-11-03 · OpenLayers 10.3.1 · 更新 2026-10-27 · 引用本文
new ol.control.ScaleLine(options)

构造参数

参数说明
className控件类名,默认 'ol-scale-line'
units单位制,默认 'metric',可选 'degrees'、'imperial'、'nautical'、'us'
minWidth比例尺最小宽度像素,默认 64
maxWidth比例尺最大宽度像素
bar是否使用条状样式,默认 false
steps条状样式的分档数,默认 4
text是否在条状样式上显示文字,默认 false
dpi屏幕每英寸点数,默认按系统换算

常用方法

方法返回说明
setUnits(units)void切换单位制并立即重绘
setDpi(dpi)void设置屏幕 DPI,影响像素到实际长度的换算
setMap(map)void挂载到地图,通常由 addControl 调用
getElement()Element取控件根元素,可用于自定义位置
var scaleLine = new ol.control.ScaleLine({
  units: 'metric',
  bar: true,
  steps: 4,
  text: true,
  minWidth: 80
});

map.addControl(scaleLine);
scaleLine.setUnits('imperial');   // 切到英里制

注意事项

  • units: 'degrees' 仅在视图投影为地理坐标时有意义,投影制视图下读数会失真。
  • minWidth 决定尺子的最小像素长度,取值过小会出现 1 米这种无意义的刻度。
  • 比例尺按屏幕 DPI 换算,投屏或打印场景下需要调 setDpi,否则实际长度与标注不符。
  • 控件默认放在左下角,需要移动到别处时修改其容器样式,而不是重复添加控件。
引用本文

经纬志(2026)。《ScaleLine》。https://www.jingweizhi.com/openlayers/api/scale-line.html(访问日期 2026-11-03)。