fix: make earth satellite and cable toggles fully unload
This commit is contained in:
45
frontend/public/earth/js/controls.js
vendored
45
frontend/public/earth/js/controls.js
vendored
@@ -3,14 +3,18 @@
|
||||
import { CONFIG, EARTH_CONFIG } from "./constants.js";
|
||||
import { updateZoomDisplay, showStatusMessage } from "./ui.js";
|
||||
import { toggleTerrain } from "./earth.js";
|
||||
import { reloadData, clearLockedObject } from "./main.js";
|
||||
import {
|
||||
toggleSatellites,
|
||||
reloadData,
|
||||
clearLockedObject,
|
||||
setCablesEnabled,
|
||||
setSatellitesEnabled,
|
||||
} from "./main.js";
|
||||
import {
|
||||
toggleTrails,
|
||||
getShowSatellites,
|
||||
getSatelliteCount,
|
||||
} from "./satellites.js";
|
||||
import { toggleCables, getShowCables } from "./cables.js";
|
||||
import { getShowCables } from "./cables.js";
|
||||
import { toggleBGP, getShowBGP, getBGPCount } from "./bgp.js";
|
||||
|
||||
export let autoRotate = true;
|
||||
@@ -324,19 +328,24 @@ function setupTerrainControls() {
|
||||
showStatusMessage(showTerrain ? "地形已显示" : "地形已隐藏", "info");
|
||||
});
|
||||
|
||||
bindListener(satellitesBtn, "click", function () {
|
||||
bindListener(satellitesBtn, "click", async function () {
|
||||
const showSats = !getShowSatellites();
|
||||
if (!showSats) {
|
||||
clearLockedObject();
|
||||
}
|
||||
toggleSatellites(showSats);
|
||||
this.classList.toggle("active", showSats);
|
||||
const tooltip = this.querySelector(".tooltip");
|
||||
if (tooltip) tooltip.textContent = showSats ? "隐藏卫星" : "显示卫星";
|
||||
const satelliteCountEl = document.getElementById("satellite-count");
|
||||
if (satelliteCountEl)
|
||||
satelliteCountEl.textContent = getSatelliteCount() + " 颗";
|
||||
showStatusMessage(showSats ? "卫星已显示" : "卫星已隐藏", "info");
|
||||
try {
|
||||
await setSatellitesEnabled(showSats);
|
||||
if (!showSats) {
|
||||
showStatusMessage("卫星已隐藏", "info");
|
||||
} else {
|
||||
const satelliteCountEl = document.getElementById("satellite-count");
|
||||
if (satelliteCountEl) {
|
||||
satelliteCountEl.textContent = `${getSatelliteCount()} 颗`;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("切换卫星显示失败:", error);
|
||||
}
|
||||
});
|
||||
|
||||
bindListener(bgpBtn, "click", function () {
|
||||
@@ -365,16 +374,16 @@ function setupTerrainControls() {
|
||||
showStatusMessage(nextShowTrails ? "轨迹已显示" : "轨迹已隐藏", "info");
|
||||
});
|
||||
|
||||
bindListener(cablesBtn, "click", function () {
|
||||
bindListener(cablesBtn, "click", async function () {
|
||||
const showNextCables = !getShowCables();
|
||||
if (!showNextCables) {
|
||||
clearLockedObject();
|
||||
}
|
||||
toggleCables(showNextCables);
|
||||
this.classList.toggle("active", showNextCables);
|
||||
const tooltip = this.querySelector(".tooltip");
|
||||
if (tooltip) tooltip.textContent = showNextCables ? "隐藏线缆" : "显示线缆";
|
||||
showStatusMessage(showNextCables ? "线缆已显示" : "线缆已隐藏", "info");
|
||||
try {
|
||||
await setCablesEnabled(showNextCables);
|
||||
} catch (error) {
|
||||
console.error("切换线缆显示失败:", error);
|
||||
}
|
||||
});
|
||||
|
||||
bindListener(reloadBtn, "click", async () => {
|
||||
|
||||
Reference in New Issue
Block a user