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 @@