@hzab/map-combine 0.4.0-alpha.0 → 0.4.2-alpha.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.
@@ -1,13 +1,15 @@
1
-
2
1
  import { Point } from "../basic/Point";
3
2
  import { CesiumMap } from "./CesiumMap";
4
3
 
4
+ function geographyTcartesian3(e: number[]) {
5
+ return Cesium.Cartesian3.fromDegrees(e[0], e[1], e[2] ?? 3);
6
+ }
5
7
 
6
8
  export function drawPoint(map: CesiumMap, point: Point<unknown>) {
7
- const { markers, event } = map
8
- const { size, center } = point
9
- let status = 0
10
- let skip = 0
9
+ const { markers, event } = map;
10
+ const { size, center } = point;
11
+ let status = 0;
12
+ let skip = 0;
11
13
  const shape = markers.add({
12
14
  show: false,
13
15
  position: Cesium.Cartesian3.ZERO,
@@ -20,118 +22,116 @@ export function drawPoint(map: CesiumMap, point: Point<unknown>) {
20
22
  cursor: point.cursor,
21
23
  silent: point.silent,
22
24
  onPointerIn() {
23
- status == 2 && point.event.trigger('pointer-in')
25
+ status == 2 && point.event.trigger("pointer-in");
24
26
  },
25
27
  onPointerOut() {
26
-
27
- status == 2 && point.event.trigger('pointer-out')
28
+ status == 2 && point.event.trigger("pointer-out");
28
29
  },
29
30
  onLClick() {
30
- status == 2 && point.event.trigger('left-click')
31
+ status == 2 && point.event.trigger("left-click");
31
32
  },
32
33
  onRClick() {
33
- status == 2 && point.event.trigger('right-click')
34
+ status == 2 && point.event.trigger("right-click");
34
35
  },
35
36
  onPointerDown() {
36
37
  if (point.editable && status == 2) {
37
- status = 3
38
- map.moveable = false
38
+ status = 3;
39
+ map.moveable = false;
39
40
  }
40
-
41
41
  },
42
42
  onPointerUp() {
43
43
  if (point.editable && status == 3) {
44
- status = 2
45
- map.moveable = true
44
+ status = 2;
45
+ map.moveable = true;
46
46
  }
47
- }
48
- }
49
- })
47
+ },
48
+ },
49
+ });
50
50
 
51
51
  if (point.coordinates) {
52
- status = 2
53
- shape.position = Cesium.Cartesian3.fromDegrees(...point.coordinates)
54
- shape.show = point.show
52
+ status = 2;
53
+ const p = point.coordinates;
54
+ shape.position = geographyTcartesian3(p);
55
+ shape.show = point.show;
55
56
  }
56
57
 
57
58
  const onMouseMove = () => {
58
59
  switch (status) {
59
60
  case 0:
60
- status = 1
61
- shape.position = Cesium.Cartesian3.fromDegrees(...event.geography)
62
- shape.show = point.show
61
+ status = 1;
62
+ shape.position = geographyTcartesian3(event.geography);
63
+ shape.show = point.show;
63
64
  break;
64
65
  case 1:
65
66
  case 3:
66
- shape.position = Cesium.Cartesian3.fromDegrees(...event.geography)
67
- break
67
+ shape.position = geographyTcartesian3(event.geography);
68
+ break;
68
69
  }
69
- }
70
+ };
70
71
 
71
72
  const onClick = () => {
72
73
  if (status == 1) {
73
- status = 2
74
- skip++
75
- point.coordinates = event.geography
76
- point.event.trigger('pointer-in')
74
+ status = 2;
75
+ skip++;
76
+ point.coordinates = event.geography;
77
+ point.event.trigger("pointer-in");
77
78
  }
78
- }
79
+ };
79
80
 
80
81
  const onUpdate = (e: Set<string>) => {
81
82
  if (skip) {
82
- skip--
83
- return
83
+ skip--;
84
+ return;
84
85
  }
85
- const { size, center } = point
86
- e.forEach(key => {
86
+ const { size, center } = point;
87
+ e.forEach((key) => {
87
88
  switch (key) {
88
- case 'show':
89
- shape.show = point.show
89
+ case "show":
90
+ shape.show = point.show;
90
91
  break;
91
- case 'editable':
92
+ case "editable":
92
93
  break;
93
- case 'coordinates':
94
+ case "coordinates":
94
95
  if (point.coordinates) {
95
- shape.position = Cesium.Cartesian3.fromDegrees(...point.coordinates)
96
- shape.show = point.show
96
+ const p = point.coordinates;
97
+ shape.position = geographyTcartesian3(p);
98
+ shape.show = point.show;
97
99
  status = 2;
98
100
  } else {
99
- shape.show = false
100
- status = 0
101
+ shape.show = false;
102
+ status = 0;
101
103
  }
102
104
 
103
105
  break;
104
- case 'src':
105
- shape.image = point.src
106
+ case "src":
107
+ shape.image = point.src;
106
108
  break;
107
- case 'size':
108
- shape.width = point.size[0]
109
- shape.height = point.size[1]
109
+ case "size":
110
+ shape.width = point.size[0];
111
+ shape.height = point.size[1];
110
112
  break;
111
- case 'center':
112
- shape.pixelOffset = new Cesium.Cartesian2(-size[0] * (center[0] - 0.5), -size[1] * (center[1] - 0.5))
113
+ case "center":
114
+ shape.pixelOffset = new Cesium.Cartesian2(-size[0] * (center[0] - 0.5), -size[1] * (center[1] - 0.5));
113
115
  break;
114
- case 'rotation':
115
- shape.rotation = Cesium.Math.toRadians(point.rotation)
116
+ case "rotation":
117
+ shape.rotation = Cesium.Math.toRadians(point.rotation);
116
118
  break;
117
119
  default:
118
- throw new Error(`${key} 还不支持修改`)
120
+ throw new Error(`${key} 还不支持修改`);
119
121
  }
120
- })
121
- }
122
+ });
123
+ };
122
124
 
123
125
  const onDestroy = () => {
124
- markers.remove(shape)
125
- event.off('pointer-move', onMouseMove)
126
- event.off('left-click', onClick)
127
- point.event.off('update', onUpdate)
128
- point.event.off('destroy', onDestroy)
129
-
130
- }
131
-
132
- event.on('pointer-move', onMouseMove)
133
- event.on('left-click', onClick)
134
- point.event.on('update', onUpdate)
135
- point.event.on('destroy', onDestroy)
126
+ markers.remove(shape);
127
+ event.off("pointer-move", onMouseMove);
128
+ event.off("left-click", onClick);
129
+ point.event.off("update", onUpdate);
130
+ point.event.off("destroy", onDestroy);
131
+ };
136
132
 
137
- }
133
+ event.on("pointer-move", onMouseMove);
134
+ event.on("left-click", onClick);
135
+ point.event.on("update", onUpdate);
136
+ point.event.on("destroy", onDestroy);
137
+ }