将卫星图片改为3D模型

master
qubiaobiao 2024-01-05 17:40:51 +08:00
parent d2cd84dab5
commit bcb9c769c4
32 changed files with 1054 additions and 136 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,42 +1,69 @@
import { app, globalShortcut, BrowserWindow, dialog } from 'electron' import { app, globalShortcut, BrowserWindow, ipcMain, dialog } from 'electron'
import { join } from 'path' import { join } from 'path'
const child_process = require('child_process') const child_process = require('child_process')
const crypto = require('crypto')
function queryKeys(keyPath: string, value: string) { function queryPass(passPath: string, passValue: string) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
try { try {
child_process.exec(`reg query ${keyPath} /v ${value}`, (error: Error, stdout: string, stderr: string) => { child_process.exec(`reg query ${passPath} /v ${passValue}`, (error: Error, stdout: string, stderr: string) => {
if (error) { if (error) {
reject(error); reject(error)
return; return
} }
resolve({stdout, stderr}); resolve({stdout, stderr})
}); });
} catch (error) { } catch (error) {
reject(error); reject(error)
} }
}); })
} }
const keyPath = 'HKEY_CURRENT_USER\\SOFTWARE\\HwaSmart' function queryKey(keyPath: string, keyValue: string) {
const value = 'global-navigation-satellite-system' return new Promise(function (resolve, reject) {
try {
child_process.exec(`reg query ${keyPath} /v ${keyValue}`, (error: Error, stdout: string, stderr: string) => {
if (error) {
reject(error)
return
}
resolve({stdout, stderr})
})
} catch (error) {
reject(error)
}
})
}
function cryptMD5(GUID: string) {
let md5 = crypto.createHash('md5')
let ciphertext = md5.update(GUID).digest('hex')
return ciphertext.slice(0,8)+'-'+ciphertext.slice(8,12)+'-'+ciphertext.slice(12,16)+'-'+ciphertext.slice(16,20)+'-'+ciphertext.slice(20,32)
}
const passPath = 'HKEY_CURRENT_USER\\SOFTWARE\\HwaSmart'
const passValue = 'BDAuthorization'
const keyPath = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography'
const keyValue = 'MachineGuid'
async function checkLaunchEnv() { async function checkLaunchEnv() {
try { try {
const result: any = await queryKeys(keyPath, value); const passResult: any = await queryPass(passPath, passValue)
// console.log('stdout', result.stdout); const keyResult: any = await queryKey(keyPath, keyValue)
return true if(cryptMD5(keyResult.stdout.slice(83,119) + 'BD') == passResult.stdout.slice(72,108)){
return true
}else{
return false
}
// 成功 // 成功
// 查询到 有这个app启动项 // 查询到 有这个app启动项
} catch (error) { } catch (error) {
// 没有查询到该app启动项目 // 没有查询到该app启动项目
// console.log('error :>> ', error);
return false return false
} }
} }
function createWindow() { function createWindow() {
const win = new BrowserWindow({ const win = new BrowserWindow({
fullscreen: true, fullscreen: true,
@ -53,13 +80,33 @@ function createWindow() {
} else { } else {
win.loadFile('dist/render/index.html') win.loadFile('dist/render/index.html')
} }
ipcMain.on('CLOSE', (event) => {
const res = dialog.showMessageBox({
type: 'warning',
title: '警告',
message: '确定要关闭软件吗?',
detail: '关闭软件',
cancelId: 1, // 按esc默认点击索引按钮
defaultId: 0, // 默认高亮的按钮下标
buttons: ['确认', '取消'], // 按钮按索引从右往左排序
})
res.then((data)=>{
if(data.response == 0){
win.close()
}else{
console.log('not close software')
}
})
})
} }
async function main() { async function main() {
// 异步代码 // 异步代码
const checkReault: any = await checkLaunchEnv() const checkReault: any = await checkLaunchEnv()
console.log('env right:', checkReault); console.log('env right:', checkReault)
// 异步代码执行完毕后执行的代码 // 异步代码执行完毕后执行的代码
if (checkReault) { if (checkReault) {
@ -88,4 +135,4 @@ async function main() {
} }
} }
main(); main()

View File

@ -1,42 +1,382 @@
<template> <template>
<vc-viewer class="vc-viewer" :animation="true" :showCredit="false" :shouldAnimate="true" :sceneModePicker="true" @ready="onViewerReady"> <vc-viewer
class="vc-viewer"
:animation="true"
:showCredit="false"
:shouldAnimate="true"
:sceneModePicker="true"
@ready="onViewerReady"
>
<vc-layer-imagery> <vc-layer-imagery>
<vc-provider-imagery-singletile :url="earth" /> <vc-provider-imagery-singletile :url="earth" />
</vc-layer-imagery> </vc-layer-imagery>
<vc-navigation :offset="[10, 40]" :position="'top-left'" :printOpts="false" :locationOpts="false" :otherOpts="false" /> <vc-navigation
:offset="[10, 40]"
:position="'top-left'"
:printOpts="false"
:locationOpts="false"
:otherOpts="false"
/>
<SatelliteSystemView /> <SatelliteSystemView />
</vc-viewer> </vc-viewer>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import earth from '../assets/earth.jpg' import { defineAsyncComponent, ref, watch } from "vue";
import SatelliteSystemView from './SatelliteSystemView.vue'; import earth from "../assets/earth.jpg";
// SatelliteSystemView 使 defineAsyncComponent SatelliteSystemView
const SatelliteSystemView = defineAsyncComponent(
() => import("./SatelliteSystemView.vue")
);
// //
const onViewerReady = ({ viewer }) => { const onViewerReady = ({ viewer }) => {
viewer.scene.debugShowFramesPerSecond = false window.viewer = viewer;
const scene = viewer.scene;
const camera = viewer.camera;
// FPS便
scene.debugShowFramesPerSecond = true;
//
// DirectionalLight
scene.light = new Cesium.DirectionalLight({
direction: new Cesium.Cartesian3(0.354925, -0.890918, -0.283358),
});
//
// minimumPixelSize maximumPixelSize 0 , show false使
//
//
class Model {
constructor(modelUrl) {
const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(108.55, 34.32, 0.0)
);
this.model = viewer.scene.primitives.add(
Cesium.Model.fromGltf({
url: `./models/geo/${modelUrl}.glb`,
modelMatrix: modelMatrix,
minimumPixelSize: 0,
maximumPixelSize: 0,
show: false,
})
);
}
}
const GEOModel = new Model("BeidouGEO");
const MEOModel = new Model("BeidouMEO");
const IGSOModel = new Model("BeidouIGSO");
const GPSIIFModel = new Model("GPSII-F");
const GPSIIRModel = new Model("GPSII-R");
const GPSIIIAModel = new Model("GPSIII-A");
const GPSIIRMModel = new Model("GPSIIR-M");
const GLONASSGLOKModel = new Model("GLONASSGLO-K");
const GLONASSGLOMModel = new Model("GLONASSGLO-M");
const GalileoMEOModel = new Model("GalileoMEO");
class CustomPrimitive {
constructor(options) {
this.show = options.show;
this._primitives = options._primitives;
}
update(frameState) {
if (!this.show) {
return;
}
for (var t = this._primitives, i = 0; i < t.length; ++i) {
t[i].update(frameState);
}
}
}
class CustomPolyline {
constructor(options) {
this.show = options.show;
this._polylines = options._polylines;
this.modelMatrix = options.modelMatrix;
this._batchTable = options._batchTable;
this._createBatchTable = options._createBatchTable;
this._createVertexArray = options._createVertexArray;
this._external = options._external;
this._highlightColor = options._highlightColor;
this._mode = options._mode;
this._modelMatrix = options._modelMatrix;
this._opaqueRS = options._opaqueRS;
this._polylineBuckets = options._polylineBuckets;
this._polylinesRemoved = options._polylinesRemoved;
this._polylinesToUpdate = options._polylinesToUpdate;
this._polylinesUpdated = options._polylinesUpdated;
this._positionBuffer = options._positionBuffer;
this._positionBufferUsage = options._positionBufferUsage;
this._propertiesChanged = options._propertiesChanged;
this._texCoordExpandAndBatchIndexBuffer =
options._texCoordExpandAndBatchIndexBuffer;
this._translucentRS = options._translucentRS;
this._uniformMap = options._uniformMap;
this._useHighlightColor = options._useHighlightColor;
this._vertexArrays = options._vertexArrays;
this.mymark = true;
this._colorCommands = [];
options._colorCommands.forEach((element) => {
let adrawcommand = new Cesium.DrawCommand(element);
this._colorCommands.push(adrawcommand);
});
}
update(frameState) {
if (!this.show) {
return;
}
// if(this._mode !== viewer.scene._mode){
// this._colorCommands.forEach(item => {
// if(viewer.scene._mode == 0){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolume
// }
// else if(viewer.scene._mode == 1){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolume2D
// }
// else if(viewer.scene._mode == 3){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolumeWC
// }
// })
// this._mode = viewer.scene._mode
// }
this._colorCommands.forEach((item) => {
frameState.commandList.push(item);
});
}
}
// //
viewer.scene.screenSpaceCameraController.minimumZoomDistance = 10000000 // 10000000 scene.screenSpaceCameraController.minimumZoomDistance = 10000000; // 10000000
scene.screenSpaceCameraController.maximumZoomDistance = 200000000; // 200000000
// infobox
const clickStatus = ref();
const clickName = ref("cesium-sceneModePicker-button3D");
const infoBox = viewer.infoBox.frame; const infoBox = viewer.infoBox.frame;
infoBox.setAttribute('sandbox', 'allow-same-origin allow-scripts allow-popups allow-forms')
infoBox.setAttribute('src', '') //src let initialPosition = "";
infoBox.addEventListener('load', function () { let initialDirection = "";
const infoBoxDescriptionElement = infoBox.contentWindow.document.getElementsByClassName('cesium-infoBox-description')[0]
infoBoxDescriptionElement.style.fontSize = 'larger' // infobox
infoBoxDescriptionElement.style.paddingLeft = '20px' infoBox.setAttribute(
infoBoxDescriptionElement.style.paddingRight = '20px' "sandbox",
}) "allow-same-origin allow-scripts allow-popups allow-forms"
} );
infoBox.setAttribute("src", ""); // src
infoBox.addEventListener("load", function () {
clickStatus.value = JSON.stringify(camera.position);
viewer.infoBox.container
.getElementsByClassName("cesium-infoBox-camera")[0]
.addEventListener("click", () => {
//
camera.completeFlight();
//
let removeChanged = camera.moveEnd.addEventListener(() => {
clickStatus.value = JSON.stringify(camera.position);
//
removeChanged();
});
});
const infoBoxDescriptionElement = infoBox.contentWindow.document.getElementsByClassName(
"cesium-infoBox-description"
)[0];
infoBoxDescriptionElement.style.fontSize = "larger";
infoBoxDescriptionElement.style.paddingLeft = "20px";
infoBoxDescriptionElement.style.paddingRight = "20px";
infoBoxDescriptionElement.style.paddingBottom = "10px";
//
const InfoBoxClose = viewer.infoBox.container.getElementsByClassName(
"cesium-infoBox-close"
)[0];
InfoBoxClose.style.padding = 0;
InfoBoxClose.style.width = "30px";
InfoBoxClose.style.height = "30px";
InfoBoxClose.style.position = "absolute";
InfoBoxClose.style.top = 0;
InfoBoxClose.style.left = "30px";
InfoBoxClose.style.zIndex = 99;
});
//
const allfly = (x, y, z, h, p, r) => {
camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(x, y, z),
orientation: {
heading: Cesium.Math.toRadians(h), // ,
pitch: Cesium.Math.toRadians(p), // ,
roll: r,
},
});
};
const waitit = (waitallow, waitTime, x, y, z, h, p, r, buttonName) => {
if (waitallow) {
setTimeout(() => {
allfly(x, y, z, h, p, r);
if (buttonName == "cesium-sceneModePicker-button2D") {
scene.camera.position.z = 63781370;
// scene.mapProjection.ellipsoid.maximumRadiusAPI6,378,137
// 12756274
// z
}
}, waitTime);
} else {
allfly(x, y, z, h, p, r);
}
};
//
// window.document.getElementsByClassName('cesium-toolbar-button')[1].classList[2]
const elementsFly = (waitallow) => {
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-button3D"
) {
waitit(
waitallow,
2500,
108.55,
34.32,
100000000,
0,
-90,
0,
"cesium-sceneModePicker-button3D"
);
}
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-button2D"
) {
waitit(
waitallow,
3500,
0,
0,
40000000,
0,
-90,
0,
"cesium-sceneModePicker-button2D"
);
}
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-buttonColumbusView"
) {
waitit(
waitallow,
4500,
0,
-90,
40000000,
0,
-45,
0,
"cesium-sceneModePicker-buttonColumbusView"
);
}
initialPosition = JSON.stringify(camera.position);
initialDirection = JSON.stringify(camera.direction);
};
//
window.document
.getElementsByClassName("cesium-toolbar-button")[0]
.addEventListener("click", () => {
if (
clickName.value !==
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2]
) {
clickName.value = window.document.getElementsByClassName(
"cesium-toolbar-button"
)[1].classList[2];
elementsFly(true);
// 使 _primitives
setTimeout(() => {
let mypolylines;
mypolylines =
viewer.scene.primitives._primitives[
viewer.scene.primitives._primitives.length - 1
];
// console.log(window.nowModel)
// console.log(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1])
// if(window.nowModel == 'Beidou'){
// mypolylines = window.BeidouPolylines[0]
// console.log(mypolylines)
// }
// else if(window.nowModel == 'GPS'){
// mypolylines = window.GPSPolylines[0]
// console.log(mypolylines)
// }
// else if(window.nowModel == 'Galileo'){
// mypolylines = window.GalileoPolylines[0]
// console.log(mypolylines)
// }
// else if(window.nowModel == 'Glonass'){
// mypolylines = window.GlonassPolylines[0]
// console.log(mypolylines)
// }
// mypolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name == 'PolylineCollection'){
viewer.scene.primitives.show = false;
// viewer.scene.primitives._primitives.pop()
let polylineowner = new CustomPolyline(mypolylines);
let newprimitive = new CustomPrimitive(viewer.scene.primitives._primitives[10]);
// viewer.scene.primitives._primitives.pop()
viewer.scene.primitives._primitives[10] = newprimitive;
viewer.scene.primitives._primitives.forEach((item, index) => {
if (item.mymark !== undefined) {
viewer.scene.primitives._primitives.splice(index, 1);
}
});
// viewer.scene.primitives._primitives.pop()
// viewer.scene.primitives._primitives.push(polylineowner)
viewer.scene.primitives.show = true;
// console.log(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1])
// }
}, 0);
}
});
//
window.document
.getElementsByClassName("vc-viewer")[0]
.addEventListener("dblclick", () => {
if (initialDirection !== "") {
elementsFly(false);
}
});
//
watch(clickStatus, (value) => {
if (value !== initialPosition) {
elementsFly(false);
}
});
};
</script> </script>
<style> <style>
/* 隐藏动画仪表盘中的日期和时间 */ /* 隐藏动画仪表盘中的日期和时间 */
.vc-viewer .cesium-viewer .cesium-viewer-animationContainer svg > g > g text:not(:last-of-type) { .vc-viewer
.cesium-viewer
.cesium-viewer-animationContainer
svg
> g
> g
text:not(:last-of-type) {
display: none; display: none;
} }
</style> </style>

View File

@ -1,6 +1,6 @@
<template> <template>
<div v-show="!!src"> <div v-show="!!src">
<img :src="src"> <img :src="src" @dblclick="close">
</div> </div>
</template> </template>
@ -10,10 +10,14 @@ import { useStore } from 'vuex'
const store = useStore() const store = useStore()
const src = computed(() => './image/flag/' + store.getters["satelliteSystem/name"] + '.png') const src = computed(() => './image/flag/' + store.getters["satelliteSystem/name"] + '.png')
const close = () => {
window.ipcRenderer.send('CLOSE')
}
</script> </script>
<style scoped> <style scoped>
img { img {
width: 169px; width: 169px;
} }
</style> </style>

View File

@ -2,44 +2,325 @@
<vc-datasource-czml v-if="czml" :czml="czml" @ready="onDataSourceReady" /> <vc-datasource-czml v-if="czml" :czml="czml" @ready="onDataSourceReady" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed } from 'vue' import { computed } from "vue";
import { useStore } from 'vuex' import { useStore } from "vuex";
import entity from '../api/entity' import entity from "../api/entity";
// //
let vcViewerInstance: any = null let vcViewerInstance: any = null;
const store = useStore() const store = useStore();
const czml = computed(() => './CZML/' + store.getters["satelliteSystem/name"] + '.czml') const czml = computed(() => "./CZML/" + store.getters["satelliteSystem/name"] + ".czml");
const onDataSourceReady = ({ viewer, cesiumObject }) => {
if (!vcViewerInstance) vcViewerInstance = viewer
viewer.flyTo(cesiumObject) const onDataSourceReady = ({ viewer, cesiumObject }) => {
entity.load(cesiumObject.entities.values) if (!vcViewerInstance) vcViewerInstance = viewer;
//
// minimumPixelSize maximumPixelSize 0 , show false使
//
//
class Model {
constructor(modelUrl) {
const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(108.55, 34.32, 0.0)
);
this.model = viewer.scene.primitives.add(
Cesium.Model.fromGltf({
url: `./models/geo/${modelUrl}.glb`,
modelMatrix: modelMatrix,
minimumPixelSize: 0,
maximumPixelSize: 0,
show: false,
})
);
}
}
const GEOModel = new Model("BeidouGEO");
const MEOModel = new Model("BeidouMEO");
const IGSOModel = new Model("BeidouIGSO");
const GPSIIFModel = new Model("GPSII-F");
const GPSIIRModel = new Model("GPSII-R");
const GPSIIIAModel = new Model("GPSIII-A");
const GPSIIRMModel = new Model("GPSIIR-M");
const GLONASSGLOKModel = new Model("GLONASSGLO-K");
const GLONASSGLOMModel = new Model("GLONASSGLO-M");
const GalileoMEOModel = new Model("GalileoMEO");
// cesiumObject.entities.values[i].model.uri._value czml
// model._resource
// cesiumObject.entities.values[i].model.uri._value http://localhost:3000/models/geo/geo.glb
// model._resource ../../../public/models/geo/geo.glb
// model._resource cesiumObject.entities.values[i].model.uri._value
// 使
class CustomPrimitive {
constructor(options) {
this.show = options.show;
this._primitives = options._primitives;
}
update(frameState) {
if (!this.show) {
return;
}
for (var t = this._primitives, i = 0; i < t.length; ++i) {
t[i].update(frameState);
}
}
}
class CustomPolyline {
constructor(options) {
this.show = options.show;
this._polylines = options._polylines;
this.modelMatrix = options.modelMatrix;
this._batchTable = options._batchTable;
this._createBatchTable = options._createBatchTable;
this._createVertexArray = options._createVertexArray;
this._external = options._external;
this._highlightColor = options._highlightColor;
this._mode = options._mode;
this._modelMatrix = options._modelMatrix;
this._opaqueRS = options._opaqueRS;
this._polylineBuckets = options._polylineBuckets;
this._polylinesRemoved = options._polylinesRemoved;
this._polylinesToUpdate = options._polylinesToUpdate;
this._polylinesUpdated = options._polylinesUpdated;
this._positionBuffer = options._positionBuffer;
this._positionBufferUsage = options._positionBufferUsage;
this._propertiesChanged = options._propertiesChanged;
this._texCoordExpandAndBatchIndexBuffer =
options._texCoordExpandAndBatchIndexBuffer;
this._translucentRS = options._translucentRS;
this._uniformMap = options._uniformMap;
this._useHighlightColor = options._useHighlightColor;
this._vertexArrays = options._vertexArrays;
this.mymark = true;
this._colorCommands = [];
options._colorCommands.forEach((element) => {
// console.log(element)
// let adrawcommand = new Cesium.DrawCommand(element)
this._colorCommands.push(element);
});
}
update(frameState) {
if (!this.show) {
return;
}
// if(this._mode !== viewer.scene._mode){
// this._colorCommands.forEach(item => {
// if(viewer.scene._mode == 0){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolume
// }
// else if(viewer.scene._mode == 1){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolume2D
// }
// else if(viewer.scene._mode == 3){
// item.boundingVolume = this._vertexArrays[0].buckets[0].bucket.polylines[0]._boundingVolumeWC
// }
// })
// this._mode = viewer.scene._mode
// }
this._colorCommands.forEach((item) => {
frameState.commandList.push(item);
// console.log(frameState.commandList)
});
// for(let s = 0, l = !0, p = 0; p < this._vertexArrays.length; ++p) {
// for(let q = 0; q < this._vertexArrays[p].buckets.length; ++q) {
// for (let v, C, P = 0, d = 0; d < this._vertexArrays[p].buckets[q].bucket.polylines.length; ++d) {
// // let I = v.isTranslucent();
// // return e.color.alpha>0&&e.color.alpha<1
// s >= this._colorCommands.length ? (C = new Cesium.DrawCommand({ owner: this }), this._colorCommands.push(C)) : C = this._colorCommands[s],
// ++s,
// // T = Cesium.combine$2(d(v._uniforms), this._uniformMap),
// C.boundingVolume = Cesium.BoundingSphere.clone(new Cesium.BoundingSphere, C.boundingVolume),
// C.modelMatrix = Cesium.Matrix4.IDENTITY,
// C.shaderProgram = this._vertexArrays[p].buckets[q].bucket.shaderProgram,
// C.vertexArray = this._vertexArrays[p].buckets.va,
// C.renderState = this._opaqueRS,
// C.pass = Cesium.Pass.OPAQUE,
// C.debugShowBoundingVolume = this.debugShowBoundingVolume,
// C.pickId = "v_pickColor",
// C.uniformMap = this._uniformMap,
// C.count = P,
// C.offset = this._vertexArrays[p].buckets[q].offset,
// this._vertexArrays[p].buckets[q].offset += P,
// P = 0,
// l = !0,
// frameState.commandList.push(C)
// console.log(frameState.commandList)
// for (var R, b = 0; b < this._vertexArrays[p].buckets[q].bucket.polylines[d]._locatorBuckets.length; ++b) {
// this._vertexArrays[p].buckets[q].bucket.polylines[d]._locatorBuckets[b].locator === this._vertexArrays[p].buckets[q] && (P += this._vertexArrays[p].buckets[q].bucket.polylines[d]._locatorBuckets[b].count)
// }
// frameState.mode === 3 ? R = this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolumeWC : frameState.mode === 0 ? R = this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolume2D : frameState.mode === 1 ? defined(this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolume2D) && ((R = BoundingSphere.clone(this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolume2D, boundingSphereScratch2)).center.x = 0) : defined(this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolumeWC) && defined(this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolume2D) && (R = Cesium.BoundingSphere.union(this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolumeWC, this._vertexArrays[p].buckets[q].bucket.polylines[d]._boundingVolume2D, new Cesium.BoundingSphere)),
// l ? (l = !1, Cesium.BoundingSphere.clone(R, new Cesium.BoundingSphere)) : Cesium.BoundingSphere.union(R, new Cesium.BoundingSphere, new Cesium.BoundingSphere)
// }
// }
// }
}
}
// 使 _primitives
setTimeout(() => {
let mypolylines;
mypolylines =
viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length - 1];
// console.log(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]._polylines[0]._id.entityCollection._owner)
// console.log(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name)
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]._polylines[0]._id.entityCollection._owner._documentPacket.name == 'BEIDOU CZML Model'){
// window.nowModel = 'Beidou'
// window.BeidouPolylines = [viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]]
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name == 'PolylineCollection'){
// mypolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// console.log(mypolylines)
// }
// }
// else if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]._polylines[0]._id.entityCollection._owner._documentPacket.name == 'GPS CZML Model'){
// window.nowModel = 'GPS'
// window.GPSPolylines = [viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]]
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name == 'PolylineCollection'){
// mypolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// console.log(mypolylines)
// }
// }
// else if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]._polylines[0]._id.entityCollection._owner._documentPacket.name == 'GALILEO CZML Model'){
// window.nowModel = 'Galileo'
// window.GalileiPolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name == 'PolylineCollection'){
// mypolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// console.log(mypolylines)
// }
// }
// else if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]._polylines[0]._id.entityCollection._owner._documentPacket.name == 'GLONASS CZML Model'){
// window.nowModel = 'Glonass'
// window.GlonassPolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// if(viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1].constructor.name == 'PolylineCollection'){
// mypolylines = viewer.scene.primitives._primitives[viewer.scene.primitives._primitives.length-1]
// console.log(mypolylines)
// }
// }
viewer.scene.primitives.show = false;
let polylineowner = new CustomPolyline(mypolylines);
let newprimitive = new CustomPrimitive(viewer.scene.primitives._primitives[10]);
viewer.scene.primitives._primitives[10] = newprimitive;
viewer.scene.primitives._primitives.forEach((item, index) => {
if (item.mymark) {
viewer.scene.primitives._primitives.splice(index, 1);
}
});
// viewer.scene.primitives._primitives.pop()
// viewer.scene.primitives._primitives.push(polylineowner)
viewer.scene.primitives.show = true;
}, 0);
cesiumObject.entities.values.forEach((element) => {
if (element.model !== undefined) {
//
element.label.pixelOffset._value = new Cesium.Cartesian2(12, 21);
//
if (element.properties.satelliteType._value == "Beidou") {
if (element.description._value.indexOf("GEO") !== -1) {
element.model.uri._value = GEOModel.model._resource;
} else if (element.description._value.indexOf("MEO") !== -1) {
element.model.uri._value = MEOModel.model._resource;
} else if (element.description._value.indexOf("IGSO") !== -1) {
element.model.uri._value = IGSOModel.model._resource;
}
} else if (element.properties.satelliteType._value == "GPS") {
// ,
element.model.imageBasedLightingFactor = new Cesium.Cartesian2(20, 1);
if (element.description._value.indexOf("II-F") !== -1) {
element.model.uri._value = GPSIIFModel.model._resource;
}
if (element.description._value.indexOf("II-R") !== -1) {
element.model.uri._value = GPSIIRModel.model._resource;
}
if (element.description._value.indexOf("III-A") !== -1) {
element.model.uri._value = GPSIIIAModel.model._resource;
}
if (element.description._value.indexOf("IIR-M") !== -1) {
element.model.uri._value = GPSIIRMModel.model._resource;
}
} else if (element.properties.satelliteType._value == "GLONASS") {
// ,
element.model.imageBasedLightingFactor = new Cesium.Cartesian2(10, 1);
if (element.description._value.indexOf("GLO-K") !== -1) {
element.model.uri._value = GLONASSGLOKModel.model._resource;
}
if (element.description._value.indexOf("GLO-M") !== -1) {
element.model.uri._value = GLONASSGLOMModel.model._resource;
}
} else if (element.properties.satelliteType._value == "Galileo") {
// ,
element.model.imageBasedLightingFactor = new Cesium.Cartesian2(20, 1);
if (element.description._value.indexOf("MEO") !== -1) {
element.model.uri._value = GalileoMEOModel.model._resource;
}
}
}
});
entity.load(cesiumObject.entities.values);
// //
viewer.selectedEntity = entity.find('Constellation') viewer.selectedEntity = entity.find("Constellation");
}
//
const allfly = (x, y, z, h, p, r) => {
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(x, y, z),
orientation: {
heading: Cesium.Math.toRadians(h), // ,
pitch: Cesium.Math.toRadians(p), // ,
roll: r,
},
});
};
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-button3D"
) {
allfly(108.55, 34.32, 100000000, 0, -90, 0);
}
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-button2D"
) {
allfly(0, 0, 40000000, 0, -90, 0);
viewer.scene.camera.position.z = 63781370;
}
if (
window.document.getElementsByClassName("cesium-toolbar-button")[1].classList[2] ==
"cesium-sceneModePicker-buttonColumbusView"
) {
allfly(0, -90, 40000000, 0, -45, 0);
}
};
// / // /
store.subscribeAction(({ type, payload }) => { store.subscribeAction(({ type, payload }) => {
// / // /
if (type === 'satelliteSystem/toggleShow') { if (type === "satelliteSystem/toggleShow") {
const satellite = entity.get(payload) const satellite = entity.get(payload);
if (!satellite) return if (!satellite) return;
satellite.show = !satellite.show satellite.show = !satellite.show;
} }
// //
if (type === 'satelliteSystem/track') { if (type === "satelliteSystem/track") {
const satellite = entity.get(payload) const satellite = entity.get(payload);
if (!satellite || !vcViewerInstance) return if (!satellite || !vcViewerInstance) return;
vcViewerInstance.selectedEntity = satellite vcViewerInstance.selectedEntity = satellite;
vcViewerInstance.trackedEntity = satellite vcViewerInstance.trackedEntity = satellite;
} }
}) });
</script> </script>

View File

@ -2,11 +2,21 @@
<div> <div>
<div id="satellite-table-container" class="text-white absolute bottom-0 text-center"> <div id="satellite-table-container" class="text-white absolute bottom-0 text-center">
<button @click="show = !show" class="rounded border-blue-900 bg-blue-900"> <button @click="show = !show" class="rounded border-blue-900 bg-blue-900">
<svg v-if="show" xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <svg v-if="show" xmlns="http://www.w3.org/2000/svg" width="600" height="30" fill="none" viewBox="-10 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 13l-7 7-7-7m14-8l-7 7-7-7" /> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M -200 8 l 200 10 200 -10 m -400 -6 l 200 10 200 -10">
<animate attributeName="stroke" attributeType="XML"
from="#ffffff" to="#666666"
begin="0s" dur="1.5s"
fill="remove" repeatCount="indefinite"/>
</path>
</svg> </svg>
<svg v-else xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <svg v-else xmlns="http://www.w3.org/2000/svg" width="600" height="30" fill="none" viewBox="-10 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 11l7-7 7 7M5 19l7-7 7 7" /> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M -200 20 l 200 -10 200 10 m -400 -6 l 200 -10 200 10">
<animate attributeName="stroke" attributeType="XML"
from="#ffffff" to="#666666"
begin="0s" dur="1.5s"
fill="remove" repeatCount="indefinite"/>
</path>
</svg> </svg>
</button> </button>
<table ref="satelliteTable" v-show="show" class="text-center"> <table ref="satelliteTable" v-show="show" class="text-center">
@ -16,6 +26,7 @@
:key="label" :key="label"
:style="{width: index == 1 ? '37.5vw' : '12.5vw'}"> :style="{width: index == 1 ? '37.5vw' : '12.5vw'}">
{{ label }} {{ label }}
<input v-if="label == '/'" :indeterminate="someshow" :checked="allshow" type="checkbox" class="w-6 h-6 cursor-pointer" @change="allOnShowStateCheckboxChanged" />
</th> </th>
</thead> </thead>
<tbody class="text-lg odd:bg-gray-50"> <tbody class="text-lg odd:bg-gray-50">
@ -23,7 +34,7 @@
<td class="border border-gray-900"> {{ index + 1 }} </td> <td class="border border-gray-900"> {{ index + 1 }} </td>
<td class="border border-gray-900"> {{ id }} </td> <td class="border border-gray-900"> {{ id }} </td>
<td class="border border-gray-900"> <td class="border border-gray-900">
<input :checked="show" type="checkbox" class="w-6 h-6 cursor-pointer" @change="onShowStateCheckboxChanged(id)" /> <input :checked="ashow" type="checkbox" class="w-6 h-6 cursor-pointer" @change="onShowStateCheckboxChanged(id)" />
</td> </td>
<td class="border border-gray-900"> <td class="border border-gray-900">
<button @click="onTrackButtonClicked(id)"> <button @click="onTrackButtonClicked(id)">
@ -45,15 +56,71 @@ import { ref, computed, watch } from 'vue'
const show = ref(false) const show = ref(false)
const ashow = ref(true)
const someshow = ref(false)
const allshow = ref(true)
const showarr = ref({})
const store = useStore() const store = useStore()
const satellites = computed(() => store.getters["satelliteSystem/satellites"]) const satellites = computed(() => store.getters["satelliteSystem/satellites"])
const onTrackButtonClicked = id => store.dispatch('satelliteSystem/track', id) const onTrackButtonClicked = (id) => {
const onShowStateCheckboxChanged = id => store.dispatch('satelliteSystem/toggleShow', id) store.dispatch('satelliteSystem/track', id)
}
const onShowStateCheckboxChanged = (id) => {
// console.log(window.viewer.scene.primitives._primitives[window.viewer.scene.primitives._primitives.length-1])
// window.viewer.scene.primitives._primitives[window.viewer.scene.primitives._primitives.length-1]._polylines.forEach(element => {
// if(element._id._id == id){
// if(element._show){
// element._show == false
// }else{
// element._show == true
// }
// }
// })
someshow.value = true
showarr.value[id] = !showarr.value[id]
store.dispatch('satelliteSystem/toggleShow', id)
let ashowsum = 0
satellites.value.forEach((item,index) => {
if(showarr.value[item.id] == true){
ashowsum = ashowsum + 1
}
})
if(ashowsum == 0){
someshow.value = false
}else if(ashowsum == satellites.value.length){
someshow.value = false
}
}
const allOnShowStateCheckboxChanged = () => {
if(allshow.value){
allshow.value = false
ashow.value = false
}else{
allshow.value = true
ashow.value = true
}
satellites.value.forEach(element => {
if(showarr.value[element.id] !== ashow.value){
onShowStateCheckboxChanged(element.id)
}
onShowStateCheckboxChanged(element.id)
})
someshow.value = false
}
// //
const satelliteTable = ref(null) const satelliteTable = ref(null)
watch(satellites, () => satelliteTable.value.scrollTop = 0) watch(satellites, () => {
ashow.value = true
someshow.value = false
allshow.value = true
showarr.value = {}
satellites.value.forEach(item => {
showarr.value[item.id] = false
})
satelliteTable.value.scrollTop = 0
})
</script> </script>
<style scoped> <style scoped>

View File

@ -0,0 +1,134 @@
PolylineCollection.prototype.update = function (e) {
if (removePolylines(this), 0 !== this._polylines.length && this.show) {
updateMode$1(this, e);
var t,
i = e.context,
r = e.mapProjection,
n = this._propertiesChanged;
if (this._createBatchTable) {
if (0 === ContextLimits.maximumVertexTextureImageUnits)
throw new RuntimeError("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");
createBatchTable(this, i),
this._createBatchTable = !1
}
if (this._createVertexArray || computeNewBuffersUsage(this))
createVertexArrays(this, i, r);
else if (this._polylinesUpdated) {
var a = this._polylinesToUpdate;
if (this._mode !== SceneMode$1.SCENE3D)
for (var o = a.length, s = 0; s < o; ++s)
(t = a[s]).update();
if (n[POSITION_SIZE_INDEX] || n[MATERIAL_INDEX])
createVertexArrays(this, i, r);
else for (var l = a.length, c = this._polylineBuckets, u = 0; u < l; ++u) {
n = (t = a[u])._propertiesChanged;
var d = t._bucket,
h = 0;
for (var p in c)
if (c.hasOwnProperty(p)) {
if (c[p] === d) {
n[POSITION_INDEX$4] && d.writeUpdate(h, t, this._positionBuffer, r);
break
}
h += c[p].lengthOfPositions
}
if ((n[SHOW_INDEX$4] || n[WIDTH_INDEX]) && this._batchTable.setBatchedAttribute(t._index, 0, new Cartesian2(t._width, t._show)), this._batchTable.attributes.length > 2) {
if (n[POSITION_INDEX$4] || n[POSITION_SIZE_INDEX]) {
var f = e.mode === SceneMode$1.SCENE2D ? t._boundingVolume2D : t._boundingVolumeWC,
m = EncodedCartesian3.fromCartesian(f.center, scratchUpdatePolylineEncodedCartesian),
g = Cartesian4.fromElements(m.low.x, m.low.y, m.low.z, f.radius, scratchUpdatePolylineCartesian4);
this._batchTable.setBatchedAttribute(t._index, 2, m.high),
this._batchTable.setBatchedAttribute(t._index, 3, g)
}
if (n[DISTANCE_DISPLAY_CONDITION]) {
var _ = scratchNearFarCartesian2;
_.x = 0,
_.y = Number.MAX_VALUE;
var y = t.distanceDisplayCondition;
defined(y) && (_.x = y.near, _.y = y.far),
this._batchTable.setBatchedAttribute(t._index, 4, _)
}
} t._clean()
}
a.length = 0,
this._polylinesUpdated = !1
}
n = this._propertiesChanged;
for (var v = 0; v < NUMBER_OF_PROPERTIES$2; ++v)
n[v] = 0;
var C = Matrix4.IDENTITY;
e.mode === SceneMode$1.SCENE3D && (C = this.modelMatrix);
var T = e.passes,
S = 0 !== e.morphTime;
if (defined(this._opaqueRS) && this._opaqueRS.depthTest.enabled === S || (this._opaqueRS = RenderState.fromCache({ depthMask: S, depthTest: { enabled: S } })), defined(this._translucentRS) && this._translucentRS.depthTest.enabled === S || (this._translucentRS = RenderState.fromCache({ blending: BlendingState$1.ALPHA_BLEND, depthMask: !S, depthTest: { enabled: S } })), this._batchTable.update(e), T.render || T.pick)
createCommandLists(this, e, this._colorCommands, C)
}
};
var boundingSphereScratch$2 = new BoundingSphere,
boundingSphereScratch2 = new BoundingSphere;
function createCommandLists(e, t, i, r) {
for (var n = t.context, a = t.commandList, o = i.length, s = 0, l = !0, c = e._vertexArrays, u = e.debugShowBoundingVolume, d = e._batchTable.getUniformMapCallback(), h = c.length, p = 0; p < h; ++p)
for (var f = c[p], m = f.buckets, g = m.length, _ = 0; _ < g; ++_) {
for (var y, v, C, T, S = m[_], A = S.offset, x = S.bucket.shaderProgram, E = S.bucket.polylines, b = E.length, P = 0, D = 0; D < b; ++D) {
var w = E[D],
M = createMaterialId(w._material);
if (M !== y) {
if (defined(y) && P > 0) {
var I = v.isTranslucent();
s >= o ? (C = new DrawCommand({ owner: e }), i.push(C)) : C = i[s],
++s,
T = combine$2(d(v._uniforms), e._uniformMap),
C.boundingVolume = BoundingSphere.clone(boundingSphereScratch$2, C.boundingVolume),
C.modelMatrix = r,
C.shaderProgram = x,
C.vertexArray = f.va,
C.renderState = I ? e._translucentRS : e._opaqueRS,
C.pass = I ? Pass$1.TRANSLUCENT : Pass$1.OPAQUE,
C.debugShowBoundingVolume = u,
C.pickId = "v_pickColor",
C.uniformMap = T,
C.count = P,
C.offset = A,
A += P,
P = 0,
l = !0,
a.push(C)
}
(v = w._material).update(n),
y = M
}
for (var R, O = w._locatorBuckets, B = O.length, L = 0; L < B; ++L) {
var F = O[L];
F.locator === S && (P += F.count)
}
t.mode === SceneMode$1.SCENE3D ? R = w._boundingVolumeWC : t.mode === SceneMode$1.COLUMBUS_VIEW ? R = w._boundingVolume2D : t.mode === SceneMode$1.SCENE2D ? defined(w._boundingVolume2D) && ((R = BoundingSphere.clone(w._boundingVolume2D, boundingSphereScratch2)).center.x = 0) : defined(w._boundingVolumeWC) && defined(w._boundingVolume2D) && (R = BoundingSphere.union(w._boundingVolumeWC, w._boundingVolume2D, boundingSphereScratch2)),
l ? (l = !1, BoundingSphere.clone(R, boundingSphereScratch$2)) : BoundingSphere.union(R, boundingSphereScratch$2, boundingSphereScratch$2)
} defined(y) && P > 0 && (
s >= o ? (C = new DrawCommand({ owner: e }), i.push(C)) : C = i[s],
++s,
T = combine$2(d(v._uniforms), e._uniformMap),
C.boundingVolume = BoundingSphere.clone(boundingSphereScratch$2, C.boundingVolume),
C.modelMatrix = r,
C.shaderProgram = x,
C.vertexArray = f.va,
C.renderState = v.isTranslucent() ? e._translucentRS : e._opaqueRS,
C.pass = v.isTranslucent() ? Pass$1.TRANSLUCENT : Pass$1.OPAQUE,
C.debugShowBoundingVolume = u,
C.pickId = "v_pickColor",
C.uniformMap = T,
C.count = P,
C.offset = A,
l = !0,
a.push(C)
),
y = void 0
}
i.length = s
}
function computeNewBuffersUsage(e) {
var t = !1,
i = e._propertiesChanged,
r = e._positionBufferUsage;
return i[POSITION_INDEX$4] ? r.bufferUsage !== BufferUsage$1.STREAM_DRAW ? (t = !0, r.bufferUsage = BufferUsage$1.STREAM_DRAW, r.frameCount = 100) : r.frameCount = 100 : r.bufferUsage !== BufferUsage$1.STATIC_DRAW && (0 === r.frameCount ? (t = !0, r.bufferUsage = BufferUsage$1.STATIC_DRAW) : r.frameCount--),
t
}

View File

@ -19,9 +19,11 @@ const actions = {
commit('setSatellites', satellites) commit('setSatellites', satellites)
}, },
track () {}, track () {
},
toggleShow () {}, toggleShow () {
},
} }
// mutations // mutations
@ -41,4 +43,4 @@ export default {
getters, getters,
actions, actions,
mutations mutations
} }

145
yarn.lock
View File

@ -433,6 +433,11 @@ acorn@^7.0.0:
resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1618212583807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1618212583807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=
adler-32@, adler-32@~1.3.0:
version "1.3.1"
resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2"
integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==
agent-base@6, agent-base@^6.0.2: agent-base@6, agent-base@^6.0.2:
version "6.0.2" version "6.0.2"
resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@ -820,6 +825,14 @@ cesium@^1.88.0:
resolved "https://registry.npmmirror.com/cesium/download/cesium-1.88.0.tgz#d2780ffca93968766feedb676fccb58493ce97d4" resolved "https://registry.npmmirror.com/cesium/download/cesium-1.88.0.tgz#d2780ffca93968766feedb676fccb58493ce97d4"
integrity sha512-Tu/U5noy+jTejtaPav5G9SAXss8I9MmR7Ug46ny2NnKQsmW7slO0MUlL3lxo0po7VSmI/E0dDU7Jo+WiRbooRQ== integrity sha512-Tu/U5noy+jTejtaPav5G9SAXss8I9MmR7Ug46ny2NnKQsmW7slO0MUlL3lxo0po7VSmI/E0dDU7Jo+WiRbooRQ==
cfb@>=0.10.0:
version "1.2.2"
resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44"
integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==
dependencies:
adler-32 "~1.3.0"
crc-32 "~1.2.0"
chalk@^2.4.1: chalk@^2.4.1:
version "2.4.2" version "2.4.2"
resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@ -921,6 +934,15 @@ clone@^1.0.2:
resolved "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" resolved "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
codepage@~1.3.6:
version "1.3.8"
resolved "https://registry.npmmirror.com/codepage/-/codepage-1.3.8.tgz#4f2e5d7c0975de28f88498058dcb5afcab6a5f71"
integrity sha512-cjAoQW5L/TCKWRbzt/xGBvhwJKQFhcIVO0jWQtpKQx4gr9qvXNkpRfq6gSmjjA8dB2Is/DPOb7gNwqQXP7UgTQ==
dependencies:
commander ""
concat-stream ""
voc ""
color-convert@^1.9.0, color-convert@^1.9.1: color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3" version "1.9.3"
resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@ -976,6 +998,11 @@ colorette@^1.2.2:
resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
integrity sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ= integrity sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=
colors@0.6.2:
version "0.6.2"
resolved "https://registry.npmmirror.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
integrity sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==
combined-stream@^1.0.8: combined-stream@^1.0.8:
version "1.0.8" version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@ -983,6 +1010,11 @@ combined-stream@^1.0.8:
dependencies: dependencies:
delayed-stream "~1.0.0" delayed-stream "~1.0.0"
commander@:
version "11.1.0"
resolved "https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==
commander@^5.0.0: commander@^5.0.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.npm.taobao.org/commander/download/commander-5.1.0.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" resolved "https://registry.npm.taobao.org/commander/download/commander-5.1.0.tgz?cache=0&sync_timestamp=1613374024216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
@ -1003,6 +1035,16 @@ concat-map@0.0.1:
resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@:
version "2.0.0"
resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
dependencies:
buffer-from "^1.0.0"
inherits "^2.0.3"
readable-stream "^3.0.2"
typedarray "^0.0.6"
concat-stream@^1.6.2: concat-stream@^1.6.2:
version "1.6.2" version "1.6.2"
resolved "https://registry.nlark.com/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" resolved "https://registry.nlark.com/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
@ -1044,6 +1086,11 @@ core-util-is@~1.0.0:
resolved "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz?cache=0&sync_timestamp=1630420570787&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" resolved "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.3.tgz?cache=0&sync_timestamp=1630420570787&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U= integrity sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=
crc-32@, crc-32@~1.2.0:
version "1.2.2"
resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
crc@^3.8.0: crc@^3.8.0:
version "3.8.0" version "3.8.0"
resolved "https://registry.npm.taobao.org/crc/download/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" resolved "https://registry.npm.taobao.org/crc/download/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
@ -1496,6 +1543,11 @@ form-data@^4.0.0:
combined-stream "^1.0.8" combined-stream "^1.0.8"
mime-types "^2.1.12" mime-types "^2.1.12"
frac@0.3.1:
version "0.3.1"
resolved "https://registry.npmmirror.com/frac/-/frac-0.3.1.tgz#577677b7fdcbe6faf7c461f1801d34137cda4354"
integrity sha512-1Lzf2jOjhIkRaa013KlxNOn2D9FemmQNeYUDpEIyPeFXmpLvbZXJOlaayMBT6JKXx+afQFgQ1QJ4kaF7Z07QFQ==
fraction.js@^4.0.13: fraction.js@^4.0.13:
version "4.0.13" version "4.0.13"
resolved "https://registry.npm.taobao.org/fraction.js/download/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" resolved "https://registry.npm.taobao.org/fraction.js/download/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe"
@ -1831,11 +1883,6 @@ ieee754@^1.1.13:
resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838209136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838209136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I= integrity sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=
if-async@^3.7.4:
version "3.7.4"
resolved "https://registry.npmmirror.com/if-async/-/if-async-3.7.4.tgz#55868deb0093d3c67bf7166e745353fb9bcb21a2"
integrity sha512-BFEH2mZyeF6KZKaKLVPZ0wMjIiWOdjvZ7zbx8ENec0qfZhJwKFbX/4jKM5LTKyJEc/GOqUKiiJ2IFKT9yWrZqA==
ignore@^5.1.1: ignore@^5.1.1:
version "5.2.0" version "5.2.0"
resolved "https://registry.npmmirror.com/ignore/download/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" resolved "https://registry.npmmirror.com/ignore/download/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
@ -1864,7 +1911,7 @@ inflight@^1.0.4:
once "^1.3.0" once "^1.3.0"
wrappy "1" wrappy "1"
inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
version "2.0.4" version "2.0.4"
resolved "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" resolved "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
@ -1964,11 +2011,6 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
isarray@~1.0.0: isarray@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@ -2008,6 +2050,19 @@ jake@^10.8.5:
filelist "^1.0.4" filelist "^1.0.4"
minimatch "^3.1.2" minimatch "^3.1.2"
js-xlsx@^0.8.22:
version "0.8.22"
resolved "https://registry.npmmirror.com/js-xlsx/-/js-xlsx-0.8.22.tgz#eb503f55f9325836eedbaa8be49da0fb0f6df3c0"
integrity sha512-3N4a9RBHTr777rxxlvwJVpC+er/neRC+40sm2M/g3RIpWiCJG0iyaGJa8Za1K3NvjhZcKn9Sz5n36TY9ti5RMQ==
dependencies:
adler-32 ""
cfb ">=0.10.0"
codepage "~1.3.6"
commander ""
crc-32 ""
jszip "2.4.0"
ssf "~0.8.1"
js-yaml@^4.1.0: js-yaml@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
@ -2056,6 +2111,13 @@ jsonfile@^6.0.1:
optionalDependencies: optionalDependencies:
graceful-fs "^4.1.6" graceful-fs "^4.1.6"
jszip@2.4.0:
version "2.4.0"
resolved "https://registry.npmmirror.com/jszip/-/jszip-2.4.0.tgz#487a93b76c3bffa6cb085cd61eb934eabe2d294f"
integrity sha512-m+yvNmYfRCaf1gr5YFT5e3fnSqLnE9McbNyRd0fNycsT0HltS19NKc18fh3Lvl/AIW/ovL6/MQ1JnfFg4G3o4A==
dependencies:
pako "~0.2.5"
keyv@^3.0.0: keyv@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.npmmirror.com/keyv/download/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" resolved "https://registry.npmmirror.com/keyv/download/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
@ -2523,6 +2585,11 @@ p-map@^4.0.0:
dependencies: dependencies:
aggregate-error "^3.0.0" aggregate-error "^3.0.0"
pako@~0.2.5:
version "0.2.9"
resolved "https://registry.npmmirror.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==
parse-glob@^3.0.4: parse-glob@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" resolved "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
@ -2743,16 +2810,6 @@ read-config-file@6.3.2:
json5 "^2.2.0" json5 "^2.2.0"
lazy-val "^1.0.4" lazy-val "^1.0.4"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@^2.2.2: readable-stream@^2.2.2:
version "2.3.7" version "2.3.7"
resolved "https://registry.nlark.com/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" resolved "https://registry.nlark.com/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@ -2766,7 +2823,7 @@ readable-stream@^2.2.2:
string_decoder "~1.1.1" string_decoder "~1.1.1"
util-deprecate "~1.0.1" util-deprecate "~1.0.1"
readable-stream@^3.4.0, readable-stream@^3.6.0: readable-stream@^3.0.2, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.2" version "3.6.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@ -2790,16 +2847,6 @@ reduce-css-calc@^2.1.8:
css-unit-converter "^1.1.1" css-unit-converter "^1.1.1"
postcss-value-parser "^3.3.0" postcss-value-parser "^3.3.0"
regedit@^5.1.2:
version "5.1.2"
resolved "https://registry.npmmirror.com/regedit/-/regedit-5.1.2.tgz#51728e0cfd7bbba95d7ab09c227aeb1174abb4e1"
integrity sha512-pQpWqO/I40bMNoMO9kTQx3e5iK542kYcB/Z8X3Y7Hcri6ydc4KZ9ByUsEWFkBRMcwo+2irHuNK5s+pMGPr6VPw==
dependencies:
debug "^4.1.0"
if-async "^3.7.4"
stream-slicer "0.0.6"
through2 "^0.6.3"
require-directory@^2.1.1: require-directory@^2.1.1:
version "2.1.1" version "2.1.1"
resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@ -3067,6 +3114,15 @@ sprintf-js@^1.1.2:
resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.1.2.tgz?cache=0&sync_timestamp=1618847174560&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.1.2.tgz?cache=0&sync_timestamp=1618847174560&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
integrity sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM= integrity sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=
ssf@~0.8.1:
version "0.8.2"
resolved "https://registry.npmmirror.com/ssf/-/ssf-0.8.2.tgz#b9d4dc6a1c1bcf76f8abfa96d7d7656fb2abecd6"
integrity sha512-+ZkFDAG+ImJ48DcZvabx6YTrZ67DKkM0kbyOOtH73mbUEvNhQWWgRZrHC8+k7GuGKWQnACYLi7bj0eCt1jmosQ==
dependencies:
colors "0.6.2"
frac "0.3.1"
voc ""
ssri@^10.0.0: ssri@^10.0.0:
version "10.0.4" version "10.0.4"
resolved "https://registry.npmmirror.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" resolved "https://registry.npmmirror.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6"
@ -3079,11 +3135,6 @@ stat-mode@^1.0.0:
resolved "https://registry.npm.taobao.org/stat-mode/download/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" resolved "https://registry.npm.taobao.org/stat-mode/download/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465"
integrity sha1-aLVcth6mOf9XE282shaikYANFGU= integrity sha1-aLVcth6mOf9XE282shaikYANFGU=
stream-slicer@0.0.6:
version "0.0.6"
resolved "https://registry.npmmirror.com/stream-slicer/-/stream-slicer-0.0.6.tgz#f86b2ac5c2440b7a0a87b71f33665c0788046138"
integrity sha512-QsY0LbweYE5L+e+iBQgtkM5WUIf7+kCMA/m2VULv8rEEDDnlDPsPvOHH4nli6uaZOKQEt64u65h0l/eeZo7lCw==
"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3:
version "4.2.3" version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@ -3118,11 +3169,6 @@ string_decoder@^1.1.1:
dependencies: dependencies:
safe-buffer "~5.2.0" safe-buffer "~5.2.0"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
string_decoder@~1.1.1: string_decoder@~1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" resolved "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@ -3225,14 +3271,6 @@ temp-file@^3.4.0:
async-exit-hook "^2.0.1" async-exit-hook "^2.0.1"
fs-extra "^10.0.0" fs-extra "^10.0.0"
through2@^0.6.3:
version "0.6.5"
resolved "https://registry.npmmirror.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
integrity sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==
dependencies:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
tmp-promise@^3.0.2: tmp-promise@^3.0.2:
version "3.0.3" version "3.0.3"
resolved "https://registry.npmmirror.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" resolved "https://registry.npmmirror.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7"
@ -3382,6 +3420,11 @@ vite@^2.0.5:
optionalDependencies: optionalDependencies:
fsevents "~2.3.1" fsevents "~2.3.1"
voc@:
version "1.2.0"
resolved "https://registry.npmmirror.com/voc/-/voc-1.2.0.tgz#c459024531d71067c09e2c0c2bda6c2b13af32d8"
integrity sha512-BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA==
vue-cesium@^3.0.4: vue-cesium@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://registry.npmmirror.com/vue-cesium/download/vue-cesium-3.0.4.tgz#3f33b6d31104efe8037cf833c28f773d703eab16" resolved "https://registry.npmmirror.com/vue-cesium/download/vue-cesium-3.0.4.tgz#3f33b6d31104efe8037cf833c28f773d703eab16"
@ -3476,7 +3519,7 @@ xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1:
resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-15.1.1.tgz?cache=0&sync_timestamp=1600349105009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlbuilder%2Fdownload%2Fxmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-15.1.1.tgz?cache=0&sync_timestamp=1600349105009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlbuilder%2Fdownload%2Fxmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
integrity sha1-nc3OSe6mbY0QtCyulKecPI0MLsU= integrity sha1-nc3OSe6mbY0QtCyulKecPI0MLsU=
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.2: xtend@^4.0.2:
version "4.0.2" version "4.0.2"
resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=