UNPKG

leaflet

Version:

JavaScript library for mobile-friendly interactive maps

77 lines (76 loc) • 2.87 kB
import { Control } from './Control.js'; import type { Defaults, ScaleControlDefaults, ScaleControlOptions } from '../types.js'; import type { LeafletMap } from '../map/Map.js'; /** @import {ControlOptions, Defaults, ScaleControlDefaults, ScaleControlOptions} from '../types.js' */ /** @import {LeafletMap} from '../map/Map.js' */ /** @satisfies {Defaults<ControlOptions>} */ declare const defaultOptions: { /** * The position of the control (one of the map corners). Possible values * are `'topleft'`, `'topright'`, `'bottomleft'` or `'bottomright'` */ position: "bottomleft"; /** * Maximum width of the control in pixels. The width is set * dynamically to show round values (e.g. 100, 200, 500). */ maxWidth: number; /** Whether to show the metric scale line (m/km). */ metric: boolean; /** Whether to show the imperial scale line (mi/ft). */ imperial: boolean; /** * If `true`, the control is updated on [`moveend`](#map-moveend), otherwise * it's always up-to-date (updated on [`move`](#map-move)). */ updateWhenIdle: boolean; }; export type ScaleControlDefaultsValues = typeof defaultOptions; /** @typedef {typeof defaultOptions} ScaleControlDefaultsValues */ /** * A simple scale control that shows the scale of the current center of screen * in metric (m/km) and imperial (mi/ft) systems. Extends `Control`. * @example * ```js * new ScaleControl().addTo(map); * ``` * @template {ScaleControlOptions} [O=ScaleControlOptions] * @extends {Control<O & ScaleControlDefaults>} */ export declare class ScaleControl<O extends ScaleControlOptions = ScaleControlOptions> extends Control<O & ScaleControlDefaults> { /** @type {HTMLElement} */ _mScale: HTMLElement; /** @type {HTMLElement} */ _iScale: HTMLElement; /** @type {Defaults<ScaleControlOptions>} */ static defaultOptions: Defaults<ScaleControlOptions>; /** * @param {LeafletMap} map * @returns {HTMLElement} */ onAdd(map: LeafletMap): HTMLElement; /** @param {LeafletMap} map */ onRemove(map: LeafletMap): void; /** * @param {ScaleControlOptions} options * @param {string} className * @param {HTMLElement} container */ _addScales(options: ScaleControlOptions, className: string, container: HTMLElement): void; _update(): void; /** @param {number} maxMeters */ _updateScales(maxMeters: number): void; /** @param {number} maxMeters */ _updateMetric(maxMeters: number): void; /** @param {number} maxMeters */ _updateImperial(maxMeters: number): void; /** * @param {HTMLElement} scale * @param {string} text * @param {number} ratio */ _updateScale(scale: HTMLElement, text: string, ratio: number): void; /** @param {number} num */ _getRoundNum(num: number): number; } export {};