easy-three-utils 0.0.336 → 0.0.338
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.
- package/cesium/components/index.ts +13 -0
- package/cesium/components/react/Timeline/index.tsx +21 -23
- package/cesium/components/react/image/pause.png +0 -0
- package/cesium/components/react/image/play.png +0 -0
- package/cesium/components/react/image/stop.png +0 -0
- package/cesium/index.ts +6 -4
- package/cesium/mars3d/data/militaryList.js +9715 -0
- package/cesium/mars3d/data/militaryTree.js +9141 -0
- package/cesium/mars3d/drawPolygon.d.ts +81 -0
- package/cesium/mars3d/drawPolygon.js +134 -0
- package/cesium/utils/useCloud.ts +113 -0
- package/cesium/utils/useDrawTools.ts +50 -0
- package/package.json +1 -1
|
@@ -4,15 +4,15 @@ import * as Cesium from "cesium";
|
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
5
|
import duration from 'dayjs/plugin/duration';
|
|
6
6
|
|
|
7
|
-
import { viewer } from '../../../index'
|
|
8
|
-
|
|
9
7
|
import Styles from './index.module.less'
|
|
10
8
|
|
|
11
|
-
dayjs.extend(duration)
|
|
9
|
+
dayjs.extend(duration)
|
|
12
10
|
|
|
13
11
|
const Timeline: React.FC<{
|
|
14
|
-
|
|
12
|
+
getViewer: () => Cesium.Viewer
|
|
15
13
|
}> = (props) => {
|
|
14
|
+
|
|
15
|
+
const { getViewer } = props
|
|
16
16
|
const [percent, setPercent] = useState(0)
|
|
17
17
|
|
|
18
18
|
const theme = {
|
|
@@ -44,45 +44,45 @@ const Timeline: React.FC<{
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const addViewerClockEvent = () => {
|
|
47
|
-
|
|
47
|
+
getViewer().clock.onTick.addEventListener(setClockEvent)
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
const removeViewerClockEvent = () => {
|
|
51
|
-
|
|
51
|
+
getViewer().clock.onTick.addEventListener(setClockEvent)
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
const onSliderChange = (value: number) => {
|
|
55
55
|
setPercent(() => value);
|
|
56
56
|
const totalSeconds = Cesium.JulianDate.secondsDifference(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
)
|
|
57
|
+
getViewer().clock.stopTime,
|
|
58
|
+
getViewer().clock.startTime
|
|
59
|
+
)
|
|
60
60
|
const newTime = Cesium.JulianDate.addSeconds(
|
|
61
|
-
|
|
61
|
+
getViewer().clock.startTime,
|
|
62
62
|
(value / 100) * totalSeconds,
|
|
63
63
|
new Cesium.JulianDate()
|
|
64
|
-
)
|
|
65
|
-
|
|
64
|
+
)
|
|
65
|
+
getViewer().clock.currentTime = newTime;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
type TContronType = 'pause' | 'play' | 'stop'
|
|
69
69
|
const control = {
|
|
70
70
|
play: () => {
|
|
71
|
-
|
|
71
|
+
getViewer().clock.shouldAnimate = true
|
|
72
72
|
},
|
|
73
73
|
pause: () => {
|
|
74
|
-
|
|
74
|
+
getViewer().clock.shouldAnimate = false
|
|
75
75
|
},
|
|
76
76
|
stop: () => {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
getViewer().clock.currentTime = getViewer().clock.startTime
|
|
78
|
+
getViewer().clock.shouldAnimate = false
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
const [totalTime, setTotalTime] = useState('00:00:00')
|
|
83
83
|
const [currentTime, setCurrentTime] = useState('00:00:00')
|
|
84
84
|
const initTimeDisplay = () => {
|
|
85
|
-
const seconds =
|
|
85
|
+
const seconds = getViewer().clock.stopTime.secondsOfDay - getViewer().clock.startTime.secondsOfDay
|
|
86
86
|
const timeDuration = dayjs.duration(seconds, 'seconds')
|
|
87
87
|
const formattedTime = timeDuration.format('HH:mm:ss')
|
|
88
88
|
setTotalTime(() => formattedTime)
|
|
@@ -90,15 +90,13 @@ const Timeline: React.FC<{
|
|
|
90
90
|
|
|
91
91
|
useEffect(() => {
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
initTimeDisplay()
|
|
96
|
-
}
|
|
93
|
+
addViewerClockEvent()
|
|
94
|
+
initTimeDisplay()
|
|
97
95
|
|
|
98
96
|
return () => {
|
|
99
97
|
removeViewerClockEvent()
|
|
100
98
|
}
|
|
101
|
-
}, [
|
|
99
|
+
}, [])
|
|
102
100
|
|
|
103
101
|
return (
|
|
104
102
|
<ConfigProvider theme={{
|
|
@@ -121,7 +119,7 @@ const Timeline: React.FC<{
|
|
|
121
119
|
<div className={Styles['control-btn']}>
|
|
122
120
|
{
|
|
123
121
|
(['pause', 'play', 'stop'] as TContronType[]).map(item =>
|
|
124
|
-
<img key={item} onClick={() => control[item]()} src={
|
|
122
|
+
<img key={item} onClick={() => control[item]()} src={new URL(`../image/${item}.png`, import.meta.url).href} />
|
|
125
123
|
)
|
|
126
124
|
}
|
|
127
125
|
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/cesium/index.ts
CHANGED
|
@@ -15,9 +15,7 @@ type TCesiumUtilsType = {
|
|
|
15
15
|
measure: ReturnType<typeof hooks.useMeasure>;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
let viewer: Cesium.Viewer;
|
|
19
18
|
let config;
|
|
20
|
-
|
|
21
19
|
const defineCesiumConfig = (cesiumConfig) => {
|
|
22
20
|
config = cesiumConfig
|
|
23
21
|
}
|
|
@@ -25,6 +23,7 @@ const defineCesiumConfig = (cesiumConfig) => {
|
|
|
25
23
|
const useCesium = () => {
|
|
26
24
|
|
|
27
25
|
let handler: Cesium.ScreenSpaceEventHandler;
|
|
26
|
+
let viewer: Cesium.Viewer;
|
|
28
27
|
|
|
29
28
|
const updateController = (viewer: Cesium.Viewer) => {
|
|
30
29
|
viewer.scene.screenSpaceCameraController.tiltEventTypes = [
|
|
@@ -117,6 +116,10 @@ const useCesium = () => {
|
|
|
117
116
|
}) as Cesium.ScreenSpaceEventHandler.MotionEventCallback, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
118
117
|
}
|
|
119
118
|
|
|
119
|
+
const getViewer = () => {
|
|
120
|
+
return viewer
|
|
121
|
+
}
|
|
122
|
+
|
|
120
123
|
const dispose = (viewer: Cesium.Viewer) => {
|
|
121
124
|
handler && handler.destroy()
|
|
122
125
|
|
|
@@ -263,6 +266,7 @@ const useCesium = () => {
|
|
|
263
266
|
return {
|
|
264
267
|
load,
|
|
265
268
|
dispose,
|
|
269
|
+
getViewer,
|
|
266
270
|
getCamera,
|
|
267
271
|
setCamera,
|
|
268
272
|
loadTiles,
|
|
@@ -275,8 +279,6 @@ const useCesium = () => {
|
|
|
275
279
|
export {
|
|
276
280
|
useCesium,
|
|
277
281
|
|
|
278
|
-
viewer,
|
|
279
|
-
|
|
280
282
|
defineCesiumConfig,
|
|
281
283
|
cesiumConfigDict
|
|
282
284
|
}
|