UNPKG

terra-draw

Version:

Frictionless map drawing across mapping provider

69 lines (68 loc) 2.51 kB
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Projection } from "../../common"; import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store"; import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode"; type TerraDrawCircleModeKeyEvents = { cancel: KeyboardEvent["key"] | null; finish: KeyboardEvent["key"] | null; }; type CirclePolygonStyling = { fillColor: HexColorStyling; outlineColor: HexColorStyling; outlineWidth: NumericStyling; fillOpacity: NumericStyling; }; interface Cursors { start?: Cursor; } interface TerraDrawCircleModeOptions<T extends CustomStyling> extends BaseModeOptions<T> { keyEvents?: TerraDrawCircleModeKeyEvents | null; cursors?: Cursors; startingRadiusKilometers?: number; projection?: Projection; } export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePolygonStyling> { mode: "circle"; private center; private clickCount; private currentCircleId; private keyEvents; private cursors; private startingRadiusKilometers; private cursorMovedAfterInitialCursorDown; /** * Create a new circle mode instance * @param options - Options to customize the behavior of the circle mode * @param options.keyEvents - Key events to cancel or finish the mode * @param options.cursors - Cursors to use for the mode * @param options.styles - Custom styling for the circle * @param options.pointerDistance - Distance in pixels to consider a pointer close to a vertex */ constructor(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>); updateOptions(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>): void; private close; /** @internal */ start(): void; /** @internal */ stop(): void; /** @internal */ onClick(event: TerraDrawMouseEvent): void; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; /** @internal */ onKeyDown(): void; /** @internal */ onKeyUp(event: TerraDrawKeyboardEvent): void; /** @internal */ onDragStart(): void; /** @internal */ onDrag(): void; /** @internal */ onDragEnd(): void; /** @internal */ cleanUp(): void; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; validateFeature(feature: unknown): StoreValidation; private updateCircle; } export {};