1.3.26 • Published 10 months ago

@nsc-earth-2/drawer v1.3.26

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

@nsc-earth-2/drawer

A drawing tool library based on Cesium, supporting commonly used shapes such as point, line, polygon, circle, etc. 中文 Readme

Installing

Using npm:

npm install @nsc-earth-2/drawer --save

Usage

import Drawer from "@nsc-earth-2/drawer";
import Cesium from "cesium";

// Initialize the viewer
const viewer = new Cesium.Viewer("cesiumContainer");

// Create a Drawer instance
const drawer = new Drawer(viewer);

// Start drawing
drawer.start({
  type: "POLYGON",
  finalOptions: {
    material: Cesium.Color.RED.withAlpha(0.5),
  },
});

DrawOption

Here are the configurable options of options:

PropertyTypeDefaultDescription
terrainbooleanfalseWhether to enable terrain mode, which requires the browser to support terrain selection.
modelbooleanfalseWhether to enable draw point on model.
operateType{START?: EventType, MOVING?: EventType, CANCEL?: EventType, END?: EventType}{ START: LEFT_CLICK, MOVING: MOUSE_MOVE, CANCEL: RIGHT_CLICK, END: LEFT_DOUBLE_CLICK }Operation types.
dynamicGraphicsOptions{POINT: PointGraphics.ConstructorOptions; POLYLINE: PolylineGraphics.ConstructorOptions; POLYGON: PolygonGraphics.ConstructorOptions; CIRCLE: EllipseGraphics.ConstructorOptions; RECTANGLE: RectangleGraphics.ConstructorOptions;}-Dynamic graphics configuration when no shape has been confirmed yet.
action(action: EventType, move: EventArgs) => void-Mouse event callback.
sameStylebooleantrueWhether to use the same style when drawing multiple shapes.
tips{init?: string or Element, start?: string or Element, end?: string or Element}{ init: 'Click to draw', start: 'LeftClick to add a point, rightClick remove point, doubleClick end drawing', end: '' }Custom mouse movement tips during editing.

StartOption

Here are the configurable options of config:

PropertyTypeDefaultDescription
type'POLYGON' | 'POLYLINE' | 'POINT' | 'CIRCLE' | 'RECTANGLE'-The type of shape to draw.
oncebooleanundefinedWhether to draw only once.
oneInstancebooleanfalseWhether to use singleton mode.
finalOptionsobject{}Entity options for drawing.
dynamicOptionsobject{}Dynamic graphics configuration when no shape has been confirmed yet.
onPointsChange(points: Cartesian3[]) => void-Callback function for changes in points.
onEnd(entity: Entity, positions: Cartesian3[]) => void-Callback function when drawing is completed.

Instance Methods

MethodDescription
start(config: StartOption, overrideFunc?: OverrideEntityFunc)Start drawing.
reset()Reset the status.
pause()Pause drawing.
destroy()Destroy the Drawer instance.

Type Definitions

DrawOption

type DrawOption = {
  terrain: boolean;
  operateType: OperationType;
  dynamicGraphicsOptions: {
    POINT: PointGraphics.ConstructorOptions;
    POLYLINE: PolylineGraphics.ConstructorOptions;
    POLYGON: PolygonGraphics.ConstructorOptions;
    CIRCLE: EllipseGraphics.ConstructorOptions;
    RECTANGLE: RectangleGraphics.ConstructorOptions;
  };
  action?: ActionCallback;
  sameStyle: boolean;
  tips: {
    init?: string | Element;
    start?: string | Element;
    end?: string | Element;
  };
};

StartOption

type StartOption = {
  type: "POLYGON" | "POLYLINE" | "POINT" | "CIRCLE" | "RECTANGLE";
  once?: boolean;
  oneInstance?: boolean;
  finalOptions?: object;
  dynamicOptions?: object;
  onPointsChange?: BasicGraphicesOptions["onPointsChange"];
  onEnd?: (entity: Entity, positions: Cartesian3[]) => void;
};

Status

type Status = "INIT" | "START" | "PAUSE" | "DESTROY";

OperationType

type OperationType = {
  START?: EventType;
  MOVING?: EventType;
  CANCEL?: EventType;
  END?: EventType;
};

OverrideEntityFunc

type OverrideEntityFunc = (
  this: Drawer,
  action: EventType,
  entity: Entity
) => Entity | void;

ActionCallback

type ActionCallback = (action: EventType, move: EventArgs) => void;
1.3.19

1 year ago

1.3.20

10 months ago

1.3.21

10 months ago

1.3.24

10 months ago

1.3.25

10 months ago

1.3.22

10 months ago

1.3.23

10 months ago

1.3.26

10 months ago

1.3.13

2 years ago

1.3.11

2 years ago

1.3.12

2 years ago

1.3.17

1 year ago

1.3.18

1 year ago

1.3.15

2 years ago

1.3.16

2 years ago

1.3.10

2 years ago

1.3.9

2 years ago

1.3.8

2 years ago

1.3.7

2 years ago

1.3.6

2 years ago

1.3.5

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago