UNPKG

leaflet

Version:

JavaScript library for mobile-friendly interactive maps

138 lines (137 loc) • 4.98 kB
import { Renderer } from './Renderer.js'; import { Bounds } from '../../geometry/Bounds.js'; import type { CanvasDefaults, CanvasOptions, Defaults, RendererEventMap } from '../../types.js'; import type { LeafletMap } from '../../map/Map.js'; import type { Point } from '../../geometry/Point.js'; import type { CircleMarker } from './CircleMarker.js'; import type { Path } from './Path.js'; import type { Polyline } from './Polyline.js'; /** @import {CanvasDefaults, CanvasOptions, Defaults, RendererEventMap} from '../../types.js' */ /** @import {LeafletMap} from '../../map/Map.js' */ /** @import {Point} from '../../geometry/Point.js' */ /** @import {CircleMarker} from './CircleMarker.js' */ /** @import {Path} from './Path.js' */ /** @import {Polyline} from './Polyline.js' */ declare const defaultOptions: { /** How much to extend the click tolerance around a path/object on the map. */ tolerance: number; }; export type CanvasDefaultsValues = typeof defaultOptions; export type DrawOrder = { layer: Path; prev?: DrawOrder | null; next?: DrawOrder | null; }; /** * Allows vector layers to be displayed with [`<canvas>`](https://developer.mozilla.org/docs/Web/API/Canvas_API). * Inherits `Renderer`. * @constructorDescription Creates a Canvas renderer with the given options. * @example * Use Canvas by default for all paths in the map: * * ```js * const map = new LeafletMap('map', { * renderer: new Canvas() * }); * ``` * * Use a Canvas renderer with extra padding for specific vector geometries: * * ```js * const map = new LeafletMap('map'); * const myRenderer = new Canvas({ padding: 0.5 }); * const line = new Polyline( coordinates, { renderer: myRenderer } ); * const circle = new Circle( center, { renderer: myRenderer, radius: 100 } ); * ``` * @template {CanvasOptions} [O=CanvasOptions] * @template {RendererEventMap} [E=RendererEventMap] * @extends {Renderer<O & CanvasDefaults, E>} */ export declare class Canvas<O extends CanvasOptions = CanvasOptions, E extends RendererEventMap = RendererEventMap> extends Renderer<O & CanvasDefaults, E> { /** @type {boolean} */ _postponeUpdatePaths: boolean; _container: HTMLCanvasElement; /** @type {CanvasRenderingContext2D} */ _ctx: CanvasRenderingContext2D; /** @type {number | null} */ _redrawRequest: number | null; _ctxScale: number; /** @type {Bounds | null} */ _redrawBounds: Bounds | null; /** @type {DrawOrder | null | undefined} */ _drawLast: DrawOrder | null | undefined; _drawFirst: DrawOrder | null | undefined; /** @type {boolean} */ _drawing: boolean; _hoveredLayer: Path | null | undefined; _pointerHoverThrottled: boolean | undefined; /** @type {number | undefined} */ _pointerHoverThrottleTimeout: number | undefined; /** @type {Defaults<CanvasOptions>} */ static defaultOptions: Defaults<CanvasOptions>; getEvents(): import("../../types.js").MapListeners; _onViewPreReset(): void; /** @param {LeafletMap} map */ onAdd(map: LeafletMap): void; /** @param {LeafletMap} map */ onRemove(map: LeafletMap): void; _initContainer(): void; _destroyContainer(): void; _resizeContainer(): Point; _updatePaths(): void; _update(): void; _reset(): void; /** @param {Path} layer */ _initPath(layer: Path): void; /** @param {Path} layer */ _addPath(layer: Path): void; /** @param {Path} layer */ _removePath(layer: Path): void; /** @param {Path} layer */ _updatePath(layer: Path): void; /** @param {Path} layer */ _updateStyle(layer: Path): void; /** @param {Path} layer */ _updateDashArray(layer: Path): void; /** @param {Path} layer */ _requestRedraw(layer: Path): void; /** @param {Path} layer */ _extendRedrawBounds(layer: Path): void; _redraw(): void; _clear(): void; _draw(): void; /** * @param {Polyline} layer * @param {boolean} [closed] */ _updatePoly(layer: Polyline, closed?: boolean): void; /** @param {CircleMarker} layer */ _updateCircle(layer: CircleMarker): void; /** * @param {CanvasRenderingContext2D} ctx * @param {Path} layer */ _fillStroke(ctx: CanvasRenderingContext2D, layer: Path): void; /** @param {MouseEvent} e */ _onClick(e: MouseEvent): void; /** @param {PointerEvent} e */ _onPointerMove(e: PointerEvent): void; /** @param {PointerEvent} e */ _handlePointerOut(e: PointerEvent): void; /** * @param {PointerEvent} e * @param {Point} point */ _handlePointerHover(e: PointerEvent, point: Point): void; /** * @param {Path[] | false} layers * @param {MouseEvent} e * @param {string} [type] */ _fireEvent(layers: Path[] | false, e: MouseEvent, type?: string): void; /** @param {Path} layer */ _bringToFront(layer: Path): void; /** @param {Path} layer */ _bringToBack(layer: Path): void; } export {};