release: bump version to 0.54.0
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#38bdf8" class="bi bi-pc" viewBox="0 0 16 16">
|
||||
<path d="M5 0a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1H5Zm.5 14a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1Zm2 0a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1ZM5 1.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5ZM5.5 3h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1Z"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/>
|
||||
<path fill="#38bdf8" d="M3 19h1V6.36a1.5 1.5 0 0 1 1.026-1.423l8-2.666A1.5 1.5 0 0 1 15 3.694V19h1V9.99a.5.5 0 0 1 .598-.49l2.196.44A1.5 1.5 0 0 1 20 11.41V19h1a1 1 0 1 1 0 2H3a1 1 0 1 1 0-2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 821 B |
@@ -199,16 +199,6 @@
|
||||
<span class="layer-row-toggle-track"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="layer-row" data-layer-name="轨迹 trails">
|
||||
<span class="material-symbols-rounded layer-row-icon">timeline</span>
|
||||
<div class="layer-row-copy">
|
||||
<span class="layer-row-label">轨迹</span>
|
||||
<span class="layer-row-meta">Trails</span>
|
||||
</div>
|
||||
<button id="toggle-trails" class="layer-row-toggle active" type="button" role="switch" aria-checked="true" title="切换轨迹显示">
|
||||
<span class="layer-row-toggle-track"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="layer-row" data-layer-name="卫星 satellites">
|
||||
<span class="material-symbols-rounded layer-row-icon">satellite_alt</span>
|
||||
<div class="layer-row-copy">
|
||||
@@ -889,6 +879,16 @@
|
||||
<span class="earth-mobile-settings-switch-track"></span>
|
||||
</span>
|
||||
</label>
|
||||
<label class="earth-mobile-settings-card">
|
||||
<div class="earth-mobile-settings-copy">
|
||||
<span class="earth-mobile-settings-label">轨迹显示</span>
|
||||
<span class="earth-mobile-settings-subtitle">控制卫星轨迹线显示</span>
|
||||
</div>
|
||||
<span class="earth-mobile-settings-switch">
|
||||
<input type="checkbox" data-trails-toggle checked>
|
||||
<span class="earth-mobile-settings-switch-track"></span>
|
||||
</span>
|
||||
</label>
|
||||
<label class="earth-mobile-settings-card">
|
||||
<div class="earth-mobile-settings-copy">
|
||||
<span class="earth-mobile-settings-label">低缩放圆点</span>
|
||||
@@ -1190,6 +1190,16 @@
|
||||
<span class="earth-settings-switch-track"></span>
|
||||
</span>
|
||||
</label>
|
||||
<label class="earth-settings-item" for="toggle-trails-display">
|
||||
<div class="earth-settings-copy">
|
||||
<span class="earth-settings-item-title">轨迹显示</span>
|
||||
<span class="earth-settings-item-subtitle">控制卫星轨迹线显示,卫星图层关闭时会自动隐藏</span>
|
||||
</div>
|
||||
<span class="earth-settings-switch">
|
||||
<input id="toggle-trails-display" type="checkbox" data-trails-toggle checked>
|
||||
<span class="earth-settings-switch-track"></span>
|
||||
</span>
|
||||
</label>
|
||||
<label class="earth-settings-item" for="toggle-interactable-compact-dots">
|
||||
<div class="earth-settings-copy">
|
||||
<span class="earth-settings-item-title">低缩放圆点</span>
|
||||
|
||||
@@ -339,13 +339,13 @@ export const SATELLITE_CONFIG = {
|
||||
dotZoomScalePower: 1,
|
||||
ringSize: 0.07,
|
||||
apiPath: '/api/v1/visualization/geo/satellites',
|
||||
breathingSpeed: 0.08,
|
||||
breathingScaleAmplitude: 0.15,
|
||||
breathingOpacityMin: 0.5,
|
||||
breathingOpacityMax: 0.8,
|
||||
breathingSpeed: 0.036,
|
||||
breathingScaleAmplitude: 0.22,
|
||||
breathingOpacityMin: 0.34,
|
||||
breathingOpacityMax: 0.9,
|
||||
dotBreathingSpeed: 0.12,
|
||||
dotBreathingScaleAmplitude: 0.2,
|
||||
dotOpacityMin: 0.7,
|
||||
dotBreathingScaleAmplitude: 0.28,
|
||||
dotOpacityMin: 0.42,
|
||||
dotOpacityMax: 1.0
|
||||
};
|
||||
|
||||
|
||||
61
frontend/public/earth/js/controls.js
vendored
61
frontend/public/earth/js/controls.js
vendored
@@ -782,6 +782,7 @@ function getCurrentSharedSettingsSnapshot() {
|
||||
rotationMode,
|
||||
cruiseModules: getCruiseModules(),
|
||||
satelliteDisplayStyle: getSatelliteDisplayStyle(),
|
||||
trailsEnabled: getShowTrails(),
|
||||
layerVisibility: Object.fromEntries(
|
||||
getPersistedLayers().map((layer) => [layer.id, Boolean(layer.getVisible?.())]),
|
||||
),
|
||||
@@ -834,6 +835,7 @@ function cloneEarthSettings(settings) {
|
||||
cruiseModules: [...(settings.shared.cruiseModules || DEFAULT_CRUISE_MODULES)],
|
||||
satelliteDisplayStyle:
|
||||
settings.shared.satelliteDisplayStyle || DEFAULT_SATELLITE_DISPLAY_STYLE,
|
||||
trailsEnabled: settings.shared.trailsEnabled !== false,
|
||||
terrainOpacity: settings.shared.terrainOpacity,
|
||||
dayNightEnabled: settings.shared.dayNightEnabled,
|
||||
defaultEarthZoom: settings.shared.defaultEarthZoom,
|
||||
@@ -978,6 +980,11 @@ function normalizeEarthSettings(rawSettings, defaults) {
|
||||
typeof sharedSettings?.interactableCompactDotsEnabled === "boolean"
|
||||
? sharedSettings.interactableCompactDotsEnabled
|
||||
: defaults.shared.interactableCompactDotsEnabled;
|
||||
const nextTrailsEnabled = typeof sharedSettings?.trailsEnabled === "boolean"
|
||||
? sharedSettings.trailsEnabled
|
||||
: typeof inputLayerVisibility.trails === "boolean"
|
||||
? inputLayerVisibility.trails
|
||||
: defaults.shared.trailsEnabled;
|
||||
|
||||
return {
|
||||
version: EARTH_SETTINGS_VERSION,
|
||||
@@ -987,6 +994,7 @@ function normalizeEarthSettings(rawSettings, defaults) {
|
||||
? nextCruiseModules
|
||||
: [...DEFAULT_CRUISE_MODULES],
|
||||
satelliteDisplayStyle: nextSatelliteDisplayStyle,
|
||||
trailsEnabled: nextTrailsEnabled,
|
||||
layerVisibility: normalizedLayerVisibility,
|
||||
terrainOpacity: Number.isFinite(nextTerrainOpacity)
|
||||
? nextTerrainOpacity
|
||||
@@ -1371,6 +1379,10 @@ async function applyEarthSettings(settings, { applyLayers = true } = {}) {
|
||||
persist: false,
|
||||
suppressStatus: true,
|
||||
});
|
||||
setTrailsDisplayEnabled(settings.shared.trailsEnabled, {
|
||||
persist: false,
|
||||
silent: true,
|
||||
});
|
||||
setSatelliteIdleBreathingEnabled(settings.shared.satelliteIdleBreathingEnabled, {
|
||||
persist: false,
|
||||
suppressStatus: true,
|
||||
@@ -1774,14 +1786,34 @@ async function setVesselsLayerEnabled(button, enabled, { persist = true, silent
|
||||
}
|
||||
}
|
||||
|
||||
function setTrailsLayerEnabled(button, enabled, { persist = true, silent = false } = {}) {
|
||||
function syncTrailsDisplayControls() {
|
||||
const trailsEnabled = getShowTrails();
|
||||
const disabledState = getLayerDisabledState("trails");
|
||||
document.querySelectorAll("[data-trails-toggle]").forEach((toggle) => {
|
||||
if (!(toggle instanceof HTMLInputElement)) return;
|
||||
toggle.checked = trailsEnabled;
|
||||
toggle.disabled = disabledState.disabled;
|
||||
const label = toggle.closest("label");
|
||||
label?.classList.toggle("is-disabled", disabledState.disabled);
|
||||
if (label instanceof HTMLElement) {
|
||||
if (disabledState.disabled && disabledState.tooltip) {
|
||||
label.title = disabledState.tooltip;
|
||||
} else {
|
||||
label.removeAttribute("title");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function setTrailsDisplayEnabled(enabled, { persist = true, silent = false } = {}) {
|
||||
toggleTrails(enabled);
|
||||
const disabledState = getLayerDisabledState("trails");
|
||||
setLayerButtonState(button, {
|
||||
setLayerButtonState(getLayerButton("trails"), {
|
||||
active: enabled,
|
||||
disabled: disabledState.disabled,
|
||||
tooltip: disabledState.tooltip || (enabled ? "隐藏轨迹" : "显示轨迹"),
|
||||
});
|
||||
syncTrailsDisplayControls();
|
||||
syncMobileLayerCards();
|
||||
if (persist) persistEarthSettings();
|
||||
if (!silent) {
|
||||
@@ -1798,6 +1830,7 @@ function syncTrailsAvailability() {
|
||||
disabled: disabledState.disabled,
|
||||
tooltip: disabledState.tooltip || (trailsEnabled ? "隐藏轨迹" : "显示轨迹"),
|
||||
});
|
||||
syncTrailsDisplayControls();
|
||||
syncMobileLayerCards();
|
||||
}
|
||||
|
||||
@@ -2021,23 +2054,6 @@ function getBuiltinLayerDefinitions() {
|
||||
setVisible: (visible, options = {}) =>
|
||||
setSatellitesLayerEnabled(getLayerButton("satellites"), visible, options),
|
||||
},
|
||||
{
|
||||
id: "trails",
|
||||
buttonId: "toggle-trails",
|
||||
icon: "timeline",
|
||||
label: "轨迹",
|
||||
meta: "Trails",
|
||||
keywords: "轨迹 trails",
|
||||
defaultActive: true,
|
||||
displayOrder: 20,
|
||||
startupPriority: null,
|
||||
startupMode: "visible",
|
||||
startupLabel: "轨迹",
|
||||
startupMessage: "",
|
||||
getVisible: () => getShowTrails(),
|
||||
setVisible: (visible, options = {}) =>
|
||||
setTrailsLayerEnabled(getLayerButton("trails"), visible, options),
|
||||
},
|
||||
{
|
||||
id: "terrain",
|
||||
buttonId: "toggle-terrain",
|
||||
@@ -2698,6 +2714,13 @@ function setupSettingsControls() {
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll("[data-trails-toggle]").forEach((toggle) => {
|
||||
if (!(toggle instanceof HTMLInputElement)) return;
|
||||
bindListener(toggle, "change", () => {
|
||||
setTrailsDisplayEnabled(toggle.checked);
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll("[data-interactable-compact-dots-toggle]").forEach((toggle) => {
|
||||
if (!(toggle instanceof HTMLInputElement)) return;
|
||||
bindListener(toggle, "change", () => {
|
||||
|
||||
@@ -681,9 +681,9 @@ function createSatelliteTwinkleState(index) {
|
||||
return {
|
||||
phase: hashSatelliteUnit(index, 1) * Math.PI * 2,
|
||||
secondaryPhase: hashSatelliteUnit(index, 2) * Math.PI * 2,
|
||||
speed: 0.62 + hashSatelliteUnit(index, 3) * 1.45,
|
||||
floor: hashSatelliteUnit(index, 4) * 0.22,
|
||||
intensity: 0.48 + hashSatelliteUnit(index, 5) * 0.52,
|
||||
speed: 0.38 + hashSatelliteUnit(index, 3) * 0.72,
|
||||
floor: hashSatelliteUnit(index, 4) * 0.16,
|
||||
intensity: 0.68 + hashSatelliteUnit(index, 5) * 0.62,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user