@vtx/cs-map 1.0.101 → 1.0.102
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/lib/scene-roam/index.js +16 -22
- package/lib/scene-roam/index.js.map +1 -1
- package/package.json +1 -1
package/lib/scene-roam/index.js
CHANGED
|
@@ -133,7 +133,6 @@ var SceneRoam = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
133
133
|
width: 16
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
|
-
map.scene.postRender.addEventListener(isOver);
|
|
137
136
|
isPlaying.current = false;
|
|
138
137
|
} else {
|
|
139
138
|
map.clock.multiplier = 0.3;
|
|
@@ -142,6 +141,22 @@ var SceneRoam = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
142
141
|
handleChange(currentPerspective.current);
|
|
143
142
|
};
|
|
144
143
|
var renderListener = (0, _react.useCallback)(function () {
|
|
144
|
+
var _trackedEntity$curren;
|
|
145
|
+
var positionProperty = (_trackedEntity$curren = trackedEntity.current) === null || _trackedEntity$curren === void 0 ? void 0 : _trackedEntity$curren.position;
|
|
146
|
+
if (!positionProperty) return;
|
|
147
|
+
var lastPosition = currentLine.current[currentLine.current.length - 1];
|
|
148
|
+
// 得到实体对象的地理坐标位置
|
|
149
|
+
var position = positionProperty.getValue(map.clock.currentTime) || lastPosition;
|
|
150
|
+
if (position && _cesium2.Cartesian3.distance(position, lastPosition) < 1) {
|
|
151
|
+
// 播放停止
|
|
152
|
+
isPlaying.current = false;
|
|
153
|
+
map.clock.shouldAnimate = false;
|
|
154
|
+
map.clock.multiplier = 0;
|
|
155
|
+
removePreRenderHandler();
|
|
156
|
+
map.trackedEntity = null;
|
|
157
|
+
onPlayEnd === null || onPlayEnd === void 0 || onPlayEnd();
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
145
160
|
var matrix3Scratch = new _cesium2.Matrix3();
|
|
146
161
|
var scratch = new _cesium2.Matrix4();
|
|
147
162
|
var currentTime = map.clock.currentTime;
|
|
@@ -172,25 +187,6 @@ var SceneRoam = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
172
187
|
//视角变换
|
|
173
188
|
map.scene.preRender.addEventListener(renderListener);
|
|
174
189
|
};
|
|
175
|
-
var isOver = function isOver() {
|
|
176
|
-
if (!trackedEntity.current) return;
|
|
177
|
-
var positionProperty = trackedEntity.current.position;
|
|
178
|
-
if (!positionProperty) return;
|
|
179
|
-
var lastPosition = currentLine.current[currentLine.current.length - 1];
|
|
180
|
-
// 得到实体对象的地理坐标位置
|
|
181
|
-
var position = positionProperty.getValue(map.clock.currentTime) || lastPosition;
|
|
182
|
-
if (position && _cesium2.Cartesian3.distance(position, lastPosition) < 1) {
|
|
183
|
-
// 播放停止
|
|
184
|
-
isPlaying.current = false;
|
|
185
|
-
// startHandler()
|
|
186
|
-
map.clock.shouldAnimate = false;
|
|
187
|
-
map.clock.multiplier = 0;
|
|
188
|
-
removePreRenderHandler();
|
|
189
|
-
map.scene.postRender.removeEventListener(isOver);
|
|
190
|
-
map.trackedEntity = null;
|
|
191
|
-
onPlayEnd === null || onPlayEnd === void 0 || onPlayEnd();
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
190
|
|
|
195
191
|
// 生成高度
|
|
196
192
|
var computeCirclularFlight = function computeCirclularFlight(start) {
|
|
@@ -231,7 +227,6 @@ var SceneRoam = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
231
227
|
startHandler();
|
|
232
228
|
map.clock.shouldAnimate = false;
|
|
233
229
|
map.clock.multiplier = 0;
|
|
234
|
-
map.scene.postRender.removeEventListener(isOver);
|
|
235
230
|
};
|
|
236
231
|
|
|
237
232
|
// 清除逻辑
|
|
@@ -322,7 +317,6 @@ var SceneRoam = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
322
317
|
map.dataSources.remove(drawLayer.current, true);
|
|
323
318
|
}
|
|
324
319
|
removePreRenderHandler();
|
|
325
|
-
map.scene.postRender.removeEventListener(isOver);
|
|
326
320
|
};
|
|
327
321
|
}, []);
|
|
328
322
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_antd","_cesium","_useProps2","_cesium2","_transformRgb","_ahooks","e","__esModule","_getRequireWildcardCache","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","o","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","TypeError","String","Number","SceneRoam","forwardRef","props","ref","_props$data","data","perspective","model","pathColor","pathOpacity","onPlaying","onPlayEnd","_useProps","useProps","map","drawLayer","useRef","currentLine","trackedEntity","isPlaying","currentPerspective","useImperativeHandle","handleChange","removePreRenderHandler","handleControl","startHandler","pauseHandler","stopHandler","clearData","drawLine","getEntity","current","setView","undefined","scene","preRender","removeEventListener","renderListener","type","message","info","resumeHandler","entities","removeAll","clock","shouldAnimate","start","JulianDate","now","stop","addSeconds","startTime","clone","stopTime","currentTime","clockRange","ClockRange","UNBOUNDED","multiplier","position","computeCirclularFlight","add","availability","TimeIntervalCollection","TimeInterval","orientation","VelocityOrientationProperty","uri","scale","path","resolution","material","PolylineGlowMaterialProperty","glowPower","color","Color","GREEN","width","postRender","addEventListener","isOver","useCallback","matrix3Scratch","Matrix3","scratch","Matrix4","getModelMatrix","entity","time","result","Property","getValueOrUndefined","Cartesian3","defined","Quaternion","Transforms","eastNorthUpToFixedFrame","fromRotationTranslation","fromQuaternion","transformX","transformZ","transformY","camera","lookAtTransform","positionProperty","lastPosition","getValue","distance","property","SampledPositionProperty","setInterpolationOptions","interpolationDegree","interpolationAlgorithm","LagrangePolynomialApproximation","addSample","clampToGround","handler","ScreenSpaceEventHandler","canvas","setInputAction","movement","cartesian","getCartesian3FromXY","x","ScreenSpaceEventType","LEFT_CLICK","catesian","endPosition","pop","MOUSE_MOVE","destroy","RIGHT_CLICK","lineEntity","Entity","id","polyline","positions","CallbackProperty","BLUE","withAlpha","useEffect","CustomDataSource","unclickable","cancelBubble","dataSources","item","fromDegrees","fromCssColorString","transformRgb","remove","useUpdateEffect","JSON","stringify","createElement","Fragment","propTypes","PropTypes","array","string","object","number","func","_default","exports"],"sources":["scene-roam/index.js"],"sourcesContent":["import React, { useEffect, useRef, useImperativeHandle, forwardRef, useCallback } from 'react'\nimport PropTypes from 'prop-types';\nimport { message } from 'antd'\nimport { getCartesian3FromXY } from '../_util/cesium';\nimport useProps from '../use-props';\nimport {\n CustomDataSource,\n Cartesian3,\n Entity,\n JulianDate,\n ClockRange,\n TimeIntervalCollection,\n TimeInterval,\n VelocityOrientationProperty,\n PolylineGlowMaterialProperty,\n Color,\n Matrix3,\n Matrix4,\n defined,\n Quaternion,\n Transforms,\n SampledPositionProperty,\n LagrangePolynomialApproximation,\n ScreenSpaceEventHandler,\n ScreenSpaceEventType,\n CallbackProperty,\n Property\n} from 'cesium';\nimport transformRgb from \"../_util/transformRgb\";\nimport {useUpdateEffect} from 'ahooks';\n\nconst SceneRoam = forwardRef((props, ref) => {\n const {data = [], perspective, model, pathColor, pathOpacity, onPlaying, onPlayEnd} = props;\n const { map } = useProps()\n const drawLayer = useRef(null)\n const currentLine = useRef([])\n const trackedEntity = useRef()\n const isPlaying = useRef(false)\n const currentPerspective = useRef(perspective || 'third')\n\n useImperativeHandle(ref, () => ({\n handleChange: handleChange,\n removePreRenderHandler: removePreRenderHandler,\n handleControl: handleControl,\n startHandler: startHandler,\n pauseHandler: pauseHandler,\n stopHandler: stopHandler,\n clearData: clearData,\n drawLine: drawLine,\n trackedEntity,\n getEntity\n }));\n\n const getEntity = () => {\n return trackedEntity.current;\n }\n\n const handleChange = (value) => {\n currentPerspective.current = value\n removePreRenderHandler()\n switch(value) {\n case 'first':\n setView()\n if (trackedEntity.current) map.trackedEntity = trackedEntity.current\n break\n case 'third':\n removePreRenderHandler()\n if (trackedEntity.current) map.trackedEntity = trackedEntity.current\n break\n case 'free':\n map.trackedEntity = undefined\n }\n }\n\n // 移除 preRender 事件监听\n const removePreRenderHandler = () => {\n map.scene.preRender.removeEventListener(renderListener)\n }\n\n const handleControl = (type) => {\n if (!currentLine.current.length && (type === 'start' || type === 'stop')) {\n message.info('请先绘制路线')\n return\n }\n switch(type) {\n case 'start':\n startHandler()\n break\n case 'resume':\n resumeHandler()\n break\n case 'pause':\n pauseHandler()\n break\n case 'stop':\n stopHandler()\n break\n default:\n clearData()\n }\n }\n\n // 开始逻辑\n const startHandler = () => {\n if (!drawLayer.current) return\n drawLayer.current.entities.removeAll()\n map.clock.shouldAnimate = true\n if (!isPlaying.current) {\n // 生成开始时间以及结束时间\n const start = JulianDate.now()\n const stop = JulianDate.addSeconds(\n start,\n currentLine.current.length - 1,\n new JulianDate()\n )\n map.clock.startTime = start.clone()\n map.clock.stopTime = stop.clone()\n map.clock.currentTime = start.clone()\n map.clock.clockRange = ClockRange.UNBOUNDED\n map.clock.multiplier = 0.3\n\n const position = computeCirclularFlight(start)\n\n trackedEntity.current = drawLayer.current.entities.add({\n availability: new TimeIntervalCollection([\n new TimeInterval({\n start,\n stop,\n }),\n ]),\n position: position,\n orientation: new VelocityOrientationProperty(position),\n model: {\n uri: '/models/drone.glb',\n scale: 0.3,\n ...model\n },\n path: {\n resolution: 1,\n material: new PolylineGlowMaterialProperty({\n glowPower: 0.1,\n color: Color.GREEN,\n }),\n width: 16,\n },\n })\n map.scene.postRender.addEventListener(isOver)\n isPlaying.current = false\n } else {\n map.clock.multiplier = 0.3\n }\n // 设置视角\n handleChange(currentPerspective.current)\n }\n\n const renderListener = useCallback(() => {\n let matrix3Scratch = new Matrix3()\n let scratch = new Matrix4()\n const currentTime = map.clock.currentTime;\n if (map.trackedEntity) {\n const getModelMatrix = (entity, time, result) => {\n const position = Property.getValueOrUndefined(\n entity.position,\n time,\n new Cartesian3()\n )\n if (!defined(position)) {\n return undefined\n }\n const orientation = Property.getValueOrUndefined(\n entity.orientation,\n time,\n new Quaternion()\n )\n if (!defined(orientation)) {\n result = Transforms.eastNorthUpToFixedFrame(\n position,\n undefined,\n result\n );\n } else {\n result = Matrix4.fromRotationTranslation(\n Matrix3.fromQuaternion(orientation, matrix3Scratch),\n position,\n result\n )\n }\n return result\n }\n\n getModelMatrix(map.trackedEntity, currentTime, scratch)\n const transformX = 90 //距离运动点的距离(后方)\n const transformZ = 55 //距离运动点的高度(上方)\n const transformY = 0 //距离运动点的高度(侧方)\n map.scene.camera.lookAtTransform(\n scratch,\n new Cartesian3(-transformX, transformY, transformZ)\n )\n }\n\n onPlaying?.(trackedEntity.current, currentTime);\n }, [])\n\n const setView = () => {\n removePreRenderHandler()\n //视角变换\n map.scene.preRender.addEventListener(renderListener)\n }\n\n const isOver = () => {\n if (!trackedEntity.current) return\n const positionProperty = trackedEntity.current.position\n if (!positionProperty) return\n\n const lastPosition = currentLine.current[currentLine.current.length - 1];\n // 得到实体对象的地理坐标位置\n const position = positionProperty.getValue(map.clock.currentTime) || lastPosition;\n if (position && Cartesian3.distance(position, lastPosition) < 1) {\n // 播放停止\n isPlaying.current = false\n // startHandler()\n map.clock.shouldAnimate = false\n map.clock.multiplier = 0\n removePreRenderHandler();\n map.scene.postRender.removeEventListener(isOver)\n map.trackedEntity = null;\n onPlayEnd?.()\n }\n }\n\n // 生成高度\n const computeCirclularFlight = (start) => {\n if (!currentLine.current.length) {\n message.info('请先绘制路线')\n return\n }\n const property = new SampledPositionProperty()\n //设置插入选项\n property.setInterpolationOptions({\n interpolationDegree: 1,\n interpolationAlgorithm: LagrangePolynomialApproximation,\n })\n\n for (let i = 0; i < currentLine.current.length; i++) {\n const time = JulianDate.addSeconds(\n start,\n i,\n new JulianDate()\n );\n const position = currentLine.current[i]\n property.addSample(time, position)\n }\n return property\n }\n\n // 继续逻辑\n const resumeHandler = () => {\n map.clock.multiplier = 0.3;\n isPlaying.current = true;\n }\n\n // 暂停逻辑\n const pauseHandler = () => {\n map.clock.multiplier = 0\n isPlaying.current = false;\n }\n\n // 结束逻辑\n const stopHandler = () => {\n if (!drawLayer.current) return\n isPlaying.current = false\n startHandler()\n map.clock.shouldAnimate = false\n map.clock.multiplier = 0\n map.scene.postRender.removeEventListener(isOver)\n }\n\n // 清除逻辑\n const clearData = () => {\n if (currentLine.current) {\n currentLine.current = []\n }\n if (drawLayer.current) drawLayer.current.entities.removeAll()\n // 清除追踪实体\n if (trackedEntity.current) trackedEntity.current = null\n }\n\n // 绘制线\n const drawLine = (clampToGround) => {\n clearData()\n const handler = new ScreenSpaceEventHandler(map.scene.canvas)\n const position = []\n if (handler) {\n handler.setInputAction((movement) => {\n // 将屏幕坐标转换为笛卡尔坐标\n const cartesian = getCartesian3FromXY(map, movement.position)\n if (cartesian && cartesian.x) {\n if (position.length === 0) {\n position.push(cartesian.clone())\n }\n position.push(cartesian)\n }\n }, ScreenSpaceEventType.LEFT_CLICK)\n\n handler.setInputAction((movement) => {\n const catesian = getCartesian3FromXY(map, movement.endPosition)\n if (position.length >= 2) {\n if (catesian && catesian.x) {\n position.pop()\n position.push(catesian)\n }\n }\n }, ScreenSpaceEventType.MOUSE_MOVE)\n\n handler.setInputAction(() => {\n if (handler) {\n handler.destroy()\n }\n currentLine.current = position\n }, ScreenSpaceEventType.RIGHT_CLICK)\n\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: new CallbackProperty(() => {\n return position\n }, false),\n width: 5,\n material: Color.BLUE.withAlpha(0.5),\n clampToGround: clampToGround\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n }\n\n useEffect(() => {\n drawLayer.current = new CustomDataSource('measureLayer');\n drawLayer.current.unclickable = true;\n drawLayer.current.cancelBubble = true;\n\n map.dataSources.add(drawLayer.current)\n // 默认加载为 第一视角\n if (perspective === 'first') {\n setView()\n }\n\n if (data?.length) {\n currentLine.current = data.map(item => {\n return Cartesian3.fromDegrees(item[0], item[1], item[2] || 10)\n })\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: currentLine.current,\n width: 5,\n material: Color.fromCssColorString(transformRgb(pathColor || '#ff4646', pathOpacity || 1)),\n clampToGround: true\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n return () => {\n if (drawLayer.current) {\n map.dataSources.remove(drawLayer.current, true)\n }\n removePreRenderHandler()\n map.scene.postRender.removeEventListener(isOver)\n }\n }, [])\n\n useUpdateEffect(() => {\n drawLayer.current.entities.removeAll();\n if (data?.length) {\n currentLine.current = data.map(item => {\n return Cartesian3.fromDegrees(item[0], item[1], item[2] || 10)\n })\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: currentLine.current,\n width: 5,\n material: Color.fromCssColorString(transformRgb(pathColor || '#ff4646', pathOpacity || 1)),\n clampToGround: true\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n }, [JSON.stringify(data)])\n\n return <></>\n})\n\nSceneRoam.propTypes = {\n data: PropTypes.array,\n perspective: PropTypes.string,\n model: PropTypes.object,\n pathColor: PropTypes.string,\n pathOpacity: PropTypes.number,\n onPlaying: PropTypes.func,\n onPlayEnd: PropTypes.func,\n}\nexport default SceneRoam\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_antd","_cesium","_useProps2","_cesium2","_transformRgb","_ahooks","e","__esModule","_getRequireWildcardCache","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","o","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","TypeError","String","Number","SceneRoam","forwardRef","props","ref","_props$data","data","perspective","model","pathColor","pathOpacity","onPlaying","onPlayEnd","_useProps","useProps","map","drawLayer","useRef","currentLine","trackedEntity","isPlaying","currentPerspective","useImperativeHandle","handleChange","removePreRenderHandler","handleControl","startHandler","pauseHandler","stopHandler","clearData","drawLine","getEntity","current","setView","undefined","scene","preRender","removeEventListener","renderListener","type","message","info","resumeHandler","entities","removeAll","clock","shouldAnimate","start","JulianDate","now","stop","addSeconds","startTime","clone","stopTime","currentTime","clockRange","ClockRange","UNBOUNDED","multiplier","position","computeCirclularFlight","add","availability","TimeIntervalCollection","TimeInterval","orientation","VelocityOrientationProperty","uri","scale","path","resolution","material","PolylineGlowMaterialProperty","glowPower","color","Color","GREEN","width","useCallback","_trackedEntity$curren","positionProperty","lastPosition","getValue","Cartesian3","distance","matrix3Scratch","Matrix3","scratch","Matrix4","getModelMatrix","entity","time","result","Property","getValueOrUndefined","defined","Quaternion","Transforms","eastNorthUpToFixedFrame","fromRotationTranslation","fromQuaternion","transformX","transformZ","transformY","camera","lookAtTransform","addEventListener","property","SampledPositionProperty","setInterpolationOptions","interpolationDegree","interpolationAlgorithm","LagrangePolynomialApproximation","addSample","clampToGround","handler","ScreenSpaceEventHandler","canvas","setInputAction","movement","cartesian","getCartesian3FromXY","x","ScreenSpaceEventType","LEFT_CLICK","catesian","endPosition","pop","MOUSE_MOVE","destroy","RIGHT_CLICK","lineEntity","Entity","id","polyline","positions","CallbackProperty","BLUE","withAlpha","useEffect","CustomDataSource","unclickable","cancelBubble","dataSources","item","fromDegrees","fromCssColorString","transformRgb","remove","useUpdateEffect","JSON","stringify","createElement","Fragment","propTypes","PropTypes","array","string","object","number","func","_default","exports"],"sources":["scene-roam/index.js"],"sourcesContent":["import React, { useEffect, useRef, useImperativeHandle, forwardRef, useCallback } from 'react'\nimport PropTypes from 'prop-types';\nimport { message } from 'antd'\nimport { getCartesian3FromXY } from '../_util/cesium';\nimport useProps from '../use-props';\nimport {\n CustomDataSource,\n Cartesian3,\n Entity,\n JulianDate,\n ClockRange,\n TimeIntervalCollection,\n TimeInterval,\n VelocityOrientationProperty,\n PolylineGlowMaterialProperty,\n Color,\n Matrix3,\n Matrix4,\n defined,\n Quaternion,\n Transforms,\n SampledPositionProperty,\n LagrangePolynomialApproximation,\n ScreenSpaceEventHandler,\n ScreenSpaceEventType,\n CallbackProperty,\n Property\n} from 'cesium';\nimport transformRgb from \"../_util/transformRgb\";\nimport {useUpdateEffect} from 'ahooks';\n\nconst SceneRoam = forwardRef((props, ref) => {\n const {data = [], perspective, model, pathColor, pathOpacity, onPlaying, onPlayEnd} = props;\n const { map } = useProps()\n const drawLayer = useRef(null)\n const currentLine = useRef([])\n const trackedEntity = useRef()\n const isPlaying = useRef(false)\n const currentPerspective = useRef(perspective || 'third')\n\n useImperativeHandle(ref, () => ({\n handleChange: handleChange,\n removePreRenderHandler: removePreRenderHandler,\n handleControl: handleControl,\n startHandler: startHandler,\n pauseHandler: pauseHandler,\n stopHandler: stopHandler,\n clearData: clearData,\n drawLine: drawLine,\n trackedEntity,\n getEntity\n }));\n\n const getEntity = () => {\n return trackedEntity.current;\n }\n\n const handleChange = (value) => {\n currentPerspective.current = value\n removePreRenderHandler()\n switch(value) {\n case 'first':\n setView()\n if (trackedEntity.current) map.trackedEntity = trackedEntity.current\n break\n case 'third':\n removePreRenderHandler()\n if (trackedEntity.current) map.trackedEntity = trackedEntity.current\n break\n case 'free':\n map.trackedEntity = undefined\n }\n }\n\n // 移除 preRender 事件监听\n const removePreRenderHandler = () => {\n map.scene.preRender.removeEventListener(renderListener)\n }\n\n const handleControl = (type) => {\n if (!currentLine.current.length && (type === 'start' || type === 'stop')) {\n message.info('请先绘制路线')\n return\n }\n switch(type) {\n case 'start':\n startHandler()\n break\n case 'resume':\n resumeHandler()\n break\n case 'pause':\n pauseHandler()\n break\n case 'stop':\n stopHandler()\n break\n default:\n clearData()\n }\n }\n\n // 开始逻辑\n const startHandler = () => {\n if (!drawLayer.current) return\n drawLayer.current.entities.removeAll()\n map.clock.shouldAnimate = true\n if (!isPlaying.current) {\n // 生成开始时间以及结束时间\n const start = JulianDate.now()\n const stop = JulianDate.addSeconds(\n start,\n currentLine.current.length - 1,\n new JulianDate()\n )\n map.clock.startTime = start.clone()\n map.clock.stopTime = stop.clone()\n map.clock.currentTime = start.clone()\n map.clock.clockRange = ClockRange.UNBOUNDED\n map.clock.multiplier = 0.3\n\n const position = computeCirclularFlight(start)\n\n trackedEntity.current = drawLayer.current.entities.add({\n availability: new TimeIntervalCollection([\n new TimeInterval({\n start,\n stop,\n }),\n ]),\n position: position,\n orientation: new VelocityOrientationProperty(position),\n model: {\n uri: '/models/drone.glb',\n scale: 0.3,\n ...model\n },\n path: {\n resolution: 1,\n material: new PolylineGlowMaterialProperty({\n glowPower: 0.1,\n color: Color.GREEN,\n }),\n width: 16,\n },\n })\n isPlaying.current = false\n } else {\n map.clock.multiplier = 0.3\n }\n // 设置视角\n handleChange(currentPerspective.current)\n }\n\n const renderListener = useCallback(() => {\n const positionProperty = trackedEntity.current?.position;\n if (!positionProperty) return\n\n const lastPosition = currentLine.current[currentLine.current.length - 1];\n // 得到实体对象的地理坐标位置\n const position = positionProperty.getValue(map.clock.currentTime) || lastPosition;\n if (position && Cartesian3.distance(position, lastPosition) < 1) {\n // 播放停止\n isPlaying.current = false\n map.clock.shouldAnimate = false\n map.clock.multiplier = 0\n removePreRenderHandler();\n map.trackedEntity = null;\n onPlayEnd?.();\n return;\n }\n\n let matrix3Scratch = new Matrix3()\n let scratch = new Matrix4()\n const currentTime = map.clock.currentTime;\n if (map.trackedEntity) {\n const getModelMatrix = (entity, time, result) => {\n const position = Property.getValueOrUndefined(\n entity.position,\n time,\n new Cartesian3()\n )\n if (!defined(position)) {\n return undefined\n }\n const orientation = Property.getValueOrUndefined(\n entity.orientation,\n time,\n new Quaternion()\n )\n if (!defined(orientation)) {\n result = Transforms.eastNorthUpToFixedFrame(\n position,\n undefined,\n result\n );\n } else {\n result = Matrix4.fromRotationTranslation(\n Matrix3.fromQuaternion(orientation, matrix3Scratch),\n position,\n result\n )\n }\n return result\n }\n\n getModelMatrix(map.trackedEntity, currentTime, scratch)\n const transformX = 90 //距离运动点的距离(后方)\n const transformZ = 55 //距离运动点的高度(上方)\n const transformY = 0 //距离运动点的高度(侧方)\n map.scene.camera.lookAtTransform(\n scratch,\n new Cartesian3(-transformX, transformY, transformZ)\n )\n }\n\n onPlaying?.(trackedEntity.current, currentTime);\n }, [])\n\n const setView = () => {\n removePreRenderHandler()\n //视角变换\n map.scene.preRender.addEventListener(renderListener)\n }\n\n // 生成高度\n const computeCirclularFlight = (start) => {\n if (!currentLine.current.length) {\n message.info('请先绘制路线')\n return\n }\n const property = new SampledPositionProperty()\n //设置插入选项\n property.setInterpolationOptions({\n interpolationDegree: 1,\n interpolationAlgorithm: LagrangePolynomialApproximation,\n })\n\n for (let i = 0; i < currentLine.current.length; i++) {\n const time = JulianDate.addSeconds(\n start,\n i,\n new JulianDate()\n );\n const position = currentLine.current[i]\n property.addSample(time, position)\n }\n return property\n }\n\n // 继续逻辑\n const resumeHandler = () => {\n map.clock.multiplier = 0.3;\n isPlaying.current = true;\n }\n\n // 暂停逻辑\n const pauseHandler = () => {\n map.clock.multiplier = 0\n isPlaying.current = false;\n }\n\n // 结束逻辑\n const stopHandler = () => {\n if (!drawLayer.current) return\n isPlaying.current = false\n startHandler()\n map.clock.shouldAnimate = false\n map.clock.multiplier = 0\n }\n\n // 清除逻辑\n const clearData = () => {\n if (currentLine.current) {\n currentLine.current = []\n }\n if (drawLayer.current) drawLayer.current.entities.removeAll()\n // 清除追踪实体\n if (trackedEntity.current) trackedEntity.current = null\n }\n\n // 绘制线\n const drawLine = (clampToGround) => {\n clearData()\n const handler = new ScreenSpaceEventHandler(map.scene.canvas)\n const position = []\n if (handler) {\n handler.setInputAction((movement) => {\n // 将屏幕坐标转换为笛卡尔坐标\n const cartesian = getCartesian3FromXY(map, movement.position)\n if (cartesian && cartesian.x) {\n if (position.length === 0) {\n position.push(cartesian.clone())\n }\n position.push(cartesian)\n }\n }, ScreenSpaceEventType.LEFT_CLICK)\n\n handler.setInputAction((movement) => {\n const catesian = getCartesian3FromXY(map, movement.endPosition)\n if (position.length >= 2) {\n if (catesian && catesian.x) {\n position.pop()\n position.push(catesian)\n }\n }\n }, ScreenSpaceEventType.MOUSE_MOVE)\n\n handler.setInputAction(() => {\n if (handler) {\n handler.destroy()\n }\n currentLine.current = position\n }, ScreenSpaceEventType.RIGHT_CLICK)\n\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: new CallbackProperty(() => {\n return position\n }, false),\n width: 5,\n material: Color.BLUE.withAlpha(0.5),\n clampToGround: clampToGround\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n }\n\n useEffect(() => {\n drawLayer.current = new CustomDataSource('measureLayer');\n drawLayer.current.unclickable = true;\n drawLayer.current.cancelBubble = true;\n\n map.dataSources.add(drawLayer.current)\n // 默认加载为 第一视角\n if (perspective === 'first') {\n setView()\n }\n\n if (data?.length) {\n currentLine.current = data.map(item => {\n return Cartesian3.fromDegrees(item[0], item[1], item[2] || 10)\n })\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: currentLine.current,\n width: 5,\n material: Color.fromCssColorString(transformRgb(pathColor || '#ff4646', pathOpacity || 1)),\n clampToGround: true\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n return () => {\n if (drawLayer.current) {\n map.dataSources.remove(drawLayer.current, true)\n }\n removePreRenderHandler()\n }\n }, [])\n\n useUpdateEffect(() => {\n drawLayer.current.entities.removeAll();\n if (data?.length) {\n currentLine.current = data.map(item => {\n return Cartesian3.fromDegrees(item[0], item[1], item[2] || 10)\n })\n const lineEntity = new Entity({\n id: 'trackLine',\n polyline: {\n positions: currentLine.current,\n width: 5,\n material: Color.fromCssColorString(transformRgb(pathColor || '#ff4646', pathOpacity || 1)),\n clampToGround: true\n }\n })\n if (drawLayer.current) {\n drawLayer.current.entities.add(lineEntity)\n }\n }\n }, [JSON.stringify(data)])\n\n return <></>\n})\n\nSceneRoam.propTypes = {\n data: PropTypes.array,\n perspective: PropTypes.string,\n model: PropTypes.object,\n pathColor: PropTypes.string,\n pathOpacity: PropTypes.number,\n onPlaying: PropTypes.func,\n onPlayEnd: PropTypes.func,\n}\nexport default SceneRoam\n"],"mappings":"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","ignoreList":[]}
|