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.
@@ -0,0 +1,13 @@
1
+ import Timeline from './react/Timeline/index.tsx'
2
+
3
+ const components = {
4
+ vue: {
5
+ },
6
+ react: {
7
+ Timeline
8
+ }
9
+ }
10
+
11
+ export {
12
+ components
13
+ }
@@ -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
- cesiumStatus: boolean;
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
- viewer.clock.onTick.addEventListener(setClockEvent)
47
+ getViewer().clock.onTick.addEventListener(setClockEvent)
48
48
  }
49
49
 
50
50
  const removeViewerClockEvent = () => {
51
- viewer.clock.onTick.addEventListener(setClockEvent)
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
- viewer.clock.stopTime,
58
- viewer.clock.startTime
59
- );
57
+ getViewer().clock.stopTime,
58
+ getViewer().clock.startTime
59
+ )
60
60
  const newTime = Cesium.JulianDate.addSeconds(
61
- viewer.clock.startTime,
61
+ getViewer().clock.startTime,
62
62
  (value / 100) * totalSeconds,
63
63
  new Cesium.JulianDate()
64
- );
65
- viewer.clock.currentTime = newTime;
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
- viewer.clock.shouldAnimate = true
71
+ getViewer().clock.shouldAnimate = true
72
72
  },
73
73
  pause: () => {
74
- viewer.clock.shouldAnimate = false
74
+ getViewer().clock.shouldAnimate = false
75
75
  },
76
76
  stop: () => {
77
- viewer.clock.currentTime = viewer.clock.startTime
78
- viewer.clock.shouldAnimate = false
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 = viewer.clock.stopTime.secondsOfDay - viewer.clock.startTime.secondsOfDay
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
- if (props.cesiumStatus) {
94
- addViewerClockEvent()
95
- initTimeDisplay()
96
- }
93
+ addViewerClockEvent()
94
+ initTimeDisplay()
97
95
 
98
96
  return () => {
99
97
  removeViewerClockEvent()
100
98
  }
101
- }, [props.cesiumStatus])
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={require(`/image/${item}.png`)} />
122
+ <img key={item} onClick={() => control[item]()} src={new URL(`../image/${item}.png`, import.meta.url).href} />
125
123
  )
126
124
  }
127
125
  </div>
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
  }