gs-maplibre-draw 0.0.78 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { default as maplibregl } from 'maplibre-gl';
|
|
2
|
+
import { DrawMode, DrawOptions, ToolCallback, ToolEvent } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* 绘图工具的事件类型:
|
|
5
|
+
* startDraw:开始绘制
|
|
6
|
+
* startDrawClick:每次开始绘制第一次点击
|
|
7
|
+
* finishDraw:完成绘制
|
|
8
|
+
* startDrag:开始拖拽
|
|
9
|
+
* finishDrag:结束拖拽
|
|
10
|
+
*/
|
|
11
|
+
export default class DrawTool {
|
|
12
|
+
private map;
|
|
13
|
+
private eventMap;
|
|
14
|
+
private uuid;
|
|
15
|
+
private layerIds;
|
|
16
|
+
private sourceIds;
|
|
17
|
+
private toolMode;
|
|
18
|
+
private options;
|
|
19
|
+
private newDraw;
|
|
20
|
+
private saveFreePolygonPoint;
|
|
21
|
+
private _activeLayer;
|
|
22
|
+
private _editMode;
|
|
23
|
+
private _dragIndex;
|
|
24
|
+
private _vertexSourceId;
|
|
25
|
+
private _vertexLayerId;
|
|
26
|
+
private _isDragging;
|
|
27
|
+
private _dragOrigin;
|
|
28
|
+
private _onMapClick;
|
|
29
|
+
private _onMapDblclick;
|
|
30
|
+
private _onMapMousemove;
|
|
31
|
+
private _onMapMousedown;
|
|
32
|
+
private _onMapMouseup;
|
|
33
|
+
private _onMapMouseover;
|
|
34
|
+
private _onMapMouseout;
|
|
35
|
+
private pointJson;
|
|
36
|
+
private lineJson;
|
|
37
|
+
private polygonJson;
|
|
38
|
+
constructor(map: maplibregl.Map);
|
|
39
|
+
private init;
|
|
40
|
+
private drawPoint;
|
|
41
|
+
private drawLine;
|
|
42
|
+
private drawPolygon;
|
|
43
|
+
private drawFreePolygon;
|
|
44
|
+
private _createRectangle;
|
|
45
|
+
setBrushSize(size: number): void;
|
|
46
|
+
startDraw<M extends DrawMode>(options: DrawOptions<M>): void;
|
|
47
|
+
stopDraw(): void;
|
|
48
|
+
private _onMapClickDraw;
|
|
49
|
+
private _onMapMousemoveDraw;
|
|
50
|
+
private _onMapDblclickDraw;
|
|
51
|
+
private _onMapMouseoverDraw;
|
|
52
|
+
private _onMapMouseoutDraw;
|
|
53
|
+
private _onMapMousedownDraw;
|
|
54
|
+
private _onMapMouseupDraw;
|
|
55
|
+
startEdit(): void;
|
|
56
|
+
stopEdit(): void;
|
|
57
|
+
private _updateVertexPoints;
|
|
58
|
+
private _clearVertexPoints;
|
|
59
|
+
private _onMapClickEdit;
|
|
60
|
+
private _onMapMousemoveEdit;
|
|
61
|
+
private _onMapMousedownEdit;
|
|
62
|
+
private _onMapMouseupEdit;
|
|
63
|
+
startDrag(): void;
|
|
64
|
+
stopDrag(): void;
|
|
65
|
+
private _onMapMousemoveDrag;
|
|
66
|
+
private _onMapMousedownDrag;
|
|
67
|
+
private _onMapMouseupDrag;
|
|
68
|
+
private _onMapClick_;
|
|
69
|
+
private _onMapDblclick_;
|
|
70
|
+
private _onMapMousemove_;
|
|
71
|
+
private _onMapMousedown_;
|
|
72
|
+
private _onMapMouseup_;
|
|
73
|
+
private _onMapMouseover_;
|
|
74
|
+
private _onMapMouseout_;
|
|
75
|
+
private _setMapActionEvents;
|
|
76
|
+
private _setMapCursorStyle;
|
|
77
|
+
private _clearMapEventListeners;
|
|
78
|
+
clearLayers(): void;
|
|
79
|
+
private _addUUID;
|
|
80
|
+
private _updateSource;
|
|
81
|
+
private _getSourceData;
|
|
82
|
+
/**
|
|
83
|
+
* @description 获取所有JSON
|
|
84
|
+
*/
|
|
85
|
+
getFeatures: () => any[];
|
|
86
|
+
private _clearJson;
|
|
87
|
+
revoke: () => void;
|
|
88
|
+
redo: () => void;
|
|
89
|
+
private emit;
|
|
90
|
+
on(event: ToolEvent, callback: ToolCallback): void;
|
|
91
|
+
off(event: ToolEvent, callback: ToolCallback): void;
|
|
92
|
+
}
|
|
93
|
+
export type DrawToolInstance = InstanceType<typeof DrawTool>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CircleLayerSpecification, LineLayerSpecification, FillLayerSpecification, SymbolLayerSpecification } from 'maplibre-gl';
|
|
2
|
+
export type ToolMode = 'draw' | 'drag' | 'edit';
|
|
3
|
+
export type DrawMode = 'circle' | 'line' | 'polygon' | 'freePolygon' | 'brush' | 'symbol';
|
|
4
|
+
export type EditMode = 'idle' | 'edit';
|
|
5
|
+
export type ToolEvent = 'startDraw' | 'finishDraw' | 'startDrag' | 'finishDrag' | 'startEdit' | 'finishEdit' | 'startBrush' | 'finishBrush';
|
|
6
|
+
export type ToolCallback = (data?: any) => void;
|
|
7
|
+
export interface DrawOptions<M extends DrawMode = DrawMode> {
|
|
8
|
+
drawMode: M;
|
|
9
|
+
showLayer: boolean;
|
|
10
|
+
smooth: boolean;
|
|
11
|
+
polyline?: boolean;
|
|
12
|
+
brushState?: boolean;
|
|
13
|
+
brushSize?: number;
|
|
14
|
+
circlePaint?: Partial<CircleLayerSpecification['paint']>;
|
|
15
|
+
linePaint?: Partial<LineLayerSpecification['paint']>;
|
|
16
|
+
fillPaint?: Partial<FillLayerSpecification['paint']>;
|
|
17
|
+
symbolPaint?: Partial<SymbolLayerSpecification['paint']>;
|
|
18
|
+
circleLayout?: Partial<CircleLayerSpecification['layout']>;
|
|
19
|
+
lineLayout?: Partial<LineLayerSpecification['layout']>;
|
|
20
|
+
fillLayout?: Partial<FillLayerSpecification['layout']>;
|
|
21
|
+
symbolLayout?: Partial<CircleLayerSpecification['layout']>;
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { default as maplibregl } from 'maplibre-gl';
|
|
2
|
+
export declare const isGeoLayer: (layer: maplibregl.LayerSpecification) => layer is maplibregl.FillLayerSpecification | maplibregl.LineLayerSpecification | maplibregl.CircleLayerSpecification | maplibregl.SymbolLayerSpecification;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gs-maplibre-draw",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -14,12 +14,6 @@
|
|
|
14
14
|
"import": "./dist/index.js",
|
|
15
15
|
"require": "./dist/index.umd.cjs"
|
|
16
16
|
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"prebuild": "rimraf dist",
|
|
19
|
-
"dev": "vite",
|
|
20
|
-
"build": "vite build",
|
|
21
|
-
"push": "npm version --no-git-tag-version patch && npm publish"
|
|
22
|
-
},
|
|
23
17
|
"devDependencies": {
|
|
24
18
|
"@types/geojson": "^7946.0.16",
|
|
25
19
|
"@vitejs/plugin-vue": "^5.0.4",
|
|
@@ -30,10 +24,16 @@
|
|
|
30
24
|
},
|
|
31
25
|
"dependencies": {
|
|
32
26
|
"@turf/turf": "^6.5.0",
|
|
33
|
-
"gs-maplibre-draw": "^0.0.
|
|
27
|
+
"gs-maplibre-draw": "^0.0.78",
|
|
34
28
|
"maplibre-gl": "^5.0.0",
|
|
35
29
|
"simplify-js": "^1.2.4",
|
|
36
30
|
"view-ui-plus": "^1.3.16",
|
|
37
31
|
"vue": "^3.4.21"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"prebuild": "rimraf dist",
|
|
35
|
+
"dev": "vite",
|
|
36
|
+
"build": "vite build",
|
|
37
|
+
"push": "npm version --no-git-tag-version patch && npm publish"
|
|
38
38
|
}
|
|
39
|
-
}
|
|
39
|
+
}
|