diff --git a/.gitignore b/.gitignore index 727c696..8968bd5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ dist-ssr *.local .vscode -.idea \ No newline at end of file +.idea + +public/Cesium \ No newline at end of file diff --git a/package.json b/package.json index 55086f2..a8e1d8b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "global-navigation-satellite-system", "description": "global-navigation-satellite-system", "author": "hwasmart", - "version": "0.0.0", + "version": "5.0.0", "main": "dist/main/app.js", "scripts": { "dev": "vite", @@ -12,23 +12,24 @@ "electron:build": "rimraf dist && vite build && tsc -p tsconfig.electron.json && electron-builder" }, "dependencies": { - "cesium": "^1.81.0", + "cesium": "^1.88.0", "czml-writer": "^1.0.3", "electron-store": "^8.0.0", "got": "^11.8.2", - "vue": "^3.2.24", - "vue-cesium": "^3.0.2-beta.13", + "vue": "^3.2.26", + "vue-cesium": "3.0.2-beta.13", "vuex": "^4.0.1" }, "devDependencies": { "@vitejs/plugin-vue": "^1.1.5", - "@vue/compiler-sfc": "^3.0.5", + "@vue/compiler-sfc": "^3.2.26", "autoprefixer": "^10.2.5", "cross-env": "^7.0.3", "electron": "^12.0.0", "electron-builder": "^22.10.5", "postcss": "^8.2.10", "rimraf": "^3.0.2", + "rollup-plugin-copy": "^3.4.0", "tailwindcss": "^2.1.1", "ts-node": "^9.1.1", "typescript": "^4.2.3", diff --git a/src/render/App.vue b/src/render/App.vue index 1e8aab4..e35c17b 100644 --- a/src/render/App.vue +++ b/src/render/App.vue @@ -2,11 +2,11 @@
- + + + - -
@@ -18,11 +18,6 @@ import SatelliteTableView from './components/SatelliteTableView.vue' import SatelliteSystemSelectView from './components/SatelliteSystemSelectView.vue' const earthView = ref(null) -const flagView = ref(null) -const onSatelliteSystemChanged = ss => { - if (earthView.value) earthView.value.loadSatelliteOrbit(ss) - if (flagView.value) flagView.value.show_flag(ss) -} const onTrackSatelliteSelected = id => { if (earthView.value) earthView.value.trackSatellite(id) } diff --git a/src/render/api/entity.js b/src/render/api/entity.js new file mode 100644 index 0000000..20354f3 --- /dev/null +++ b/src/render/api/entity.js @@ -0,0 +1,23 @@ +import store from '../store' + +let entities = [] + +const load = (value) => { + entities = value + + console.log(entities, store, "=================="); + + // 将卫星状态信息存储到store中 + const satellites = filter('Satellite') + const satellite_state_arr = satellites.map(({ id, show }) => { return { id, show } }) + store.commit('satellites/set', satellite_state_arr) +} + +const get = id => entities.find(entity => entity.id === id) + +const find = keyword => entities.find(entity => entity.id.startsWith(keyword)) + +const filter = keyword => entities.filter(entity => entity.id.startsWith(keyword)) + + +export default { get, load, find } \ No newline at end of file diff --git a/src/render/assets/earth.jpg b/src/render/assets/earth.jpg new file mode 100644 index 0000000..c4a5d33 Binary files /dev/null and b/src/render/assets/earth.jpg differ diff --git a/src/render/components/EarthView.vue b/src/render/components/EarthView.vue index 0398130..c7731b2 100644 --- a/src/render/components/EarthView.vue +++ b/src/render/components/EarthView.vue @@ -19,6 +19,8 @@ import { VcViewer, VcLayerImagery, VcProviderImageryTianditu, VcNavigation, VcDa // import 'vue-cesium/dist/index.css' import earth from '../assets/earth.jpg' +import entity from '../api/entity' + const store = useStore() const czml = computed(() => './CZML/' + store.state.satelliteSystem.name + '.czml') @@ -30,41 +32,43 @@ const getEntityById = id => { } const onDataSourceReady = ({ viewer, cesiumObject }) => { viewer.flyTo(cesiumObject) - - entities = cesiumObject.entities.values + entity.load(cesiumObject.entities.values) // 显示卫星导航系统的科普信息 - viewer.selectedEntity = entities.find(entity => entity.id.startsWith('Constellation')) - - // 将卫星状态信息存储到store中 - const satellites = entities.filter(entity => entity.id.startsWith('Satellite')) - const satellite_state_arr = satellites.map(({ id, show }) => { return { id, show } }) - store.commit('satellites/set', satellite_state_arr) + viewer.selectedEntity = entity.find('Constellation') } + +let vcViewerInstance = null +// const trackedSatelliteId = computed(() => store.state.trackedSatellite.id) +// watch(trackedSatelliteId, (value) => { +// const entity = getEntityById(value) + +// if (!entity || !vcViewerInstance) return + +// vcViewerInstance.selectedEntity = entity +// vcViewerInstance.trackedEntity = entity +// }) + + // 显示/隐藏卫星 store.subscribe(({ type, payload }) => { if (type === 'satellites/toggleShow') { - const entity = getEntityById(payload) - if (!entity) return + const satellite = entity.get(payload) + if (!satellite) return - entity.show = !entity.show + satellite.show = !satellite.show + } + + if (type === 'satellites/track') { + const satellite = entity.get(payload) + if (!satellite || !vcViewerInstance) return + + vcViewerInstance.selectedEntity = satellite + vcViewerInstance.trackedEntity = satellite } }) - -let vcViewerInstance = null -const trackedSatelliteId = computed(() => store.state.trackedSatellite.id) -watch(trackedSatelliteId, (value) => { - const entity = getEntityById(value) - - if (!entity || !vcViewerInstance) return - - vcViewerInstance.selectedEntity = entity - vcViewerInstance.trackedEntity = entity -}) - const onTrackedEntityChanged = entity => { - console.log(entity, '=============='); - store.commit('trackedSatellite/set', null) + if (!entity) store.commit('trackedSatellite/set', null) } const onViewerReady = ({ viewer }) => { diff --git a/src/render/components/FlagView.vue b/src/render/components/FlagView.vue index e1ac155..bc4a128 100644 --- a/src/render/components/FlagView.vue +++ b/src/render/components/FlagView.vue @@ -5,15 +5,11 @@