553 lines
28 KiB
HTML
553 lines
28 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>智能星球计划 - 现实层宇宙全息感知</title>
|
||
<script type="importmap">
|
||
{
|
||
"imports": {
|
||
"three": "https://esm.sh/three@0.128.0",
|
||
"simplex-noise": "https://esm.sh/simplex-noise@4.0.1",
|
||
"satellite.js": "https://esm.sh/satellite.js@5.0.0",
|
||
"hls.js": "https://esm.sh/hls.js@1.6.15",
|
||
"astronomy-engine": "https://esm.sh/astronomy-engine@2.1.19"
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
(function applyInitialHudScale() {
|
||
var referenceWidth = 1920;
|
||
var referenceHeight = 1080;
|
||
var minScale = 0.7;
|
||
var maxScale = 1;
|
||
var widthScale = window.innerWidth / referenceWidth;
|
||
var heightScale = window.innerHeight / referenceHeight;
|
||
var scale = Math.min(widthScale, heightScale);
|
||
var clampedScale = Math.max(minScale, Math.min(maxScale, scale));
|
||
|
||
document.documentElement.style.setProperty("--hud-scale", clampedScale.toFixed(3));
|
||
})();
|
||
</script>
|
||
<link rel="stylesheet" href="css/base.css">
|
||
<link rel="stylesheet" href="css/hud.css">
|
||
<link rel="stylesheet" href="css/toolbar.css">
|
||
<link rel="stylesheet" href="css/info-panel.css">
|
||
<link rel="stylesheet" href="css/legend.css">
|
||
<link rel="stylesheet" href="css/earth-stats.css">
|
||
<link rel="stylesheet" href="css/tv-panel.css">
|
||
<link rel="stylesheet" href="css/news-panel.css">
|
||
<link rel="stylesheet" href="css/layer-panel.css">
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;500;600&display=swap">
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,500,0,0">
|
||
</head>
|
||
<body class="earth-page">
|
||
<svg class="earth-filters" aria-hidden="true" width="0" height="0">
|
||
<defs>
|
||
<filter id="liquid-glass-distortion" x="-20%" y="-20%" width="140%" height="140%">
|
||
<feTurbulence type="fractalNoise" baseFrequency="0.012 0.02" numOctaves="2" seed="7" result="noise" />
|
||
<feGaussianBlur in="noise" stdDeviation="0.45" result="softNoise" />
|
||
<feDisplacementMap in="SourceGraphic" in2="softNoise" scale="5.5" xChannelSelector="R" yChannelSelector="G" />
|
||
</filter>
|
||
</defs>
|
||
</svg>
|
||
<div id="container" class="earth-app">
|
||
<div id="left-column" class="earth-left-column">
|
||
<div id="brand-panel" class="hud-panel hud-panel-brand">
|
||
<div id="brand-root"></div>
|
||
</div>
|
||
|
||
<div id="layer-toggles" class="hud-panel hud-panel-layers hud-panel-draggable" data-panel-key="layer-toggles">
|
||
<!-- Header / drag handle -->
|
||
<div class="layer-panel-header hud-panel-drag-handle">
|
||
<span class="material-symbols-rounded layer-panel-icon">layers</span>
|
||
<span class="layer-panel-title">图层</span>
|
||
<button id="layer-panel-collapse" class="layer-panel-btn" type="button" aria-label="折叠图层列表" title="折叠">
|
||
<span class="material-symbols-rounded">expand_less</span>
|
||
</button>
|
||
<button class="layer-panel-btn hud-panel-close" type="button" data-close-panel="layer-toggles" aria-label="关闭图层面板" title="关闭">
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- Collapsible body -->
|
||
<div class="layer-panel-body" id="layer-panel-body">
|
||
<!-- Search -->
|
||
<div class="layer-panel-search">
|
||
<div class="layer-panel-search-box">
|
||
<span class="material-symbols-rounded layer-panel-search-icon">search</span>
|
||
<input
|
||
type="text"
|
||
id="layer-search-input"
|
||
class="layer-panel-search-input"
|
||
placeholder="搜索图层..."
|
||
autocomplete="off"
|
||
spellcheck="false"
|
||
>
|
||
<button id="layer-search-clear" class="layer-panel-btn layer-search-clear" type="button" aria-label="清除搜索" title="清除" hidden>
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Layer rows -->
|
||
<div class="layer-panel-list" id="layer-panel-list">
|
||
<div class="layer-row" data-layer-name="地形 terrain">
|
||
<span class="material-symbols-rounded layer-row-icon">landscape</span>
|
||
<div class="layer-row-copy">
|
||
<span class="layer-row-label">地形</span>
|
||
<span class="layer-row-meta">Terrain</span>
|
||
</div>
|
||
<button id="toggle-terrain" class="layer-row-toggle" type="button" role="switch" aria-checked="false" title="切换地形显示" data-status-target="terrain-status">
|
||
<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">
|
||
<span class="layer-row-label">卫星</span>
|
||
<span class="layer-row-meta">Satellites</span>
|
||
</div>
|
||
<button id="toggle-satellites" class="layer-row-toggle" type="button" role="switch" aria-checked="false" title="切换卫星显示">
|
||
<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="海缆 subsea cables">
|
||
<span class="material-symbols-rounded layer-row-icon">cable</span>
|
||
<div class="layer-row-copy">
|
||
<span class="layer-row-label">海缆</span>
|
||
<span class="layer-row-meta">Subsea Cables</span>
|
||
</div>
|
||
<button id="toggle-cables" 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="bgp观测 routing signals">
|
||
<span class="material-symbols-rounded layer-row-icon">hub</span>
|
||
<div class="layer-row-copy">
|
||
<span class="layer-row-label">BGP观测</span>
|
||
<span class="layer-row-meta">Routing Signals</span>
|
||
</div>
|
||
<button id="toggle-bgp" class="layer-row-toggle active" type="button" role="switch" aria-checked="true" title="切换BGP观测显示">
|
||
<span class="layer-row-toggle-track"></span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Empty search state -->
|
||
<div class="layer-panel-empty" id="layer-panel-empty" hidden>无匹配图层</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="error-message" class="earth-error-message" aria-live="assertive" aria-atomic="true"></div>
|
||
|
||
<div id="right-toolbar-group" class="earth-toolbar-group">
|
||
<div id="control-toolbar" class="earth-toolbar">
|
||
<div id="toolbar-cluster" class="earth-toolbar-cluster is-expanded">
|
||
<div class="earth-toolbar-orb" data-orb-index="0" style="--orb-delay: 0s;">
|
||
<button id="search-action" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="搜索功能(待开发)">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">search</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">搜索功能(待开发)</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="1" style="--orb-delay: 0.18s;">
|
||
<button id="rotate-toggle" class="floating-btn liquid-glass-surface earth-toolbar-btn earth-rotate-toggle" title="自动旋转">
|
||
<span class="icon rotate-icon icon-pause" aria-hidden="true">
|
||
<span class="material-symbols-rounded">pause</span>
|
||
</span>
|
||
<span class="icon rotate-icon icon-play" aria-hidden="true">
|
||
<span class="material-symbols-rounded">play_arrow</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">自动旋转</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="2" style="--orb-delay: 0.36s;">
|
||
<button id="toggle-tv" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="新闻直播">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">live_tv</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">打开媒体面板</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="3" style="--orb-delay: 0.54s;">
|
||
<button id="reload-data" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="重新加载数据">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">refresh</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">重新加载数据</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb earth-toolbar-popover earth-zoom-group" id="zoom-control-group" data-orb-index="4" style="--orb-delay: 0.72s;">
|
||
<button id="zoom-trigger" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="缩放控制">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">zoom_in</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">缩放控制</span>
|
||
</button>
|
||
<div id="zoom-toolbar" class="earth-stack-toolbar earth-zoom-toolbar">
|
||
<button id="zoom-in" class="liquid-glass-surface earth-zoom-btn" title="放大" aria-label="放大"><span aria-hidden="true">+</span></button>
|
||
<span id="zoom-value" class="liquid-glass-surface earth-zoom-value" title="重置缩放到100%">100%<span class="tooltip earth-toolbar-tooltip">重置缩放到100%</span></span>
|
||
<button id="zoom-out" class="liquid-glass-surface earth-zoom-btn" title="缩小" aria-label="缩小"><span aria-hidden="true">−</span></button>
|
||
</div>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="5" style="--orb-delay: 0.9s;">
|
||
<button id="settings-trigger" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="设置">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">settings</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">设置</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="6" style="--orb-delay: 1.08s;">
|
||
<button id="reset-view" class="floating-btn liquid-glass-surface earth-toolbar-btn" title="重置视角">
|
||
<span class="icon" aria-hidden="true">
|
||
<span class="material-symbols-rounded">my_location</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">重置视角</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-orb" data-orb-index="7" style="--orb-delay: 1.26s;">
|
||
<button id="layout-toggle" class="floating-btn liquid-glass-surface earth-toolbar-btn earth-layout-toggle" title="最大化布局">
|
||
<span class="icon layout-icon layout-expand" aria-hidden="true">
|
||
<span class="material-symbols-rounded">open_in_full</span>
|
||
</span>
|
||
<span class="icon layout-icon layout-collapse" aria-hidden="true">
|
||
<span class="material-symbols-rounded">close_fullscreen</span>
|
||
</span>
|
||
<span class="tooltip earth-toolbar-tooltip">最大化布局</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-toolbar-hub">
|
||
<button id="toolbar-hub" class="earth-toolbar-hub-btn liquid-glass-surface" title="工具菜单" aria-label="展开工具菜单">
|
||
<span class="material-symbols-rounded" aria-hidden="true">tune</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div id="legend" class="hud-panel hud-panel-legend hud-panel-draggable" data-panel-key="legend">
|
||
<!-- Drag bar: current mode + collapse + close -->
|
||
<div class="legend-bar hud-panel-drag-handle">
|
||
<div class="legend-current" id="legend-current">
|
||
<span class="legend-title">图例</span>
|
||
<span id="legend-current-label" class="legend-current-label">海缆</span>
|
||
</div>
|
||
<div class="legend-bar-actions">
|
||
<button id="legend-collapse" class="legend-bar-btn hud-panel__action hud-panel__action--collapse" title="折叠">
|
||
<span class="material-symbols-rounded">expand_less</span>
|
||
</button>
|
||
<button class="legend-bar-btn hud-panel__action hud-panel__action--close hud-panel-close" type="button" data-close-panel="legend" aria-label="关闭图例">
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<!-- Collapsible list -->
|
||
<div id="legend-body" class="legend-body hud-panel__body hud-panel__body--collapsible">
|
||
<div class="legend-list"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="earth-stats" class="hud-panel hud-panel-stats hud-panel-draggable" data-panel-key="earth-stats">
|
||
<!-- Thin drag bar with kicker + close -->
|
||
<div class="stats-drag-bar hud-panel-drag-handle">
|
||
<span class="stats-kicker">全球态势</span>
|
||
<button class="hud-panel-close" type="button" data-close-panel="earth-stats" aria-label="关闭地球信息">
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- 2-col KPI grid -->
|
||
<div class="stats-grid">
|
||
<div class="stat-cell">
|
||
<span class="stat-num" id="cable-count">—</span>
|
||
<span class="stat-label">海缆系统</span>
|
||
</div>
|
||
<div class="stat-cell">
|
||
<span class="stat-num" id="landing-point-count">—</span>
|
||
<span class="stat-label">登陆点</span>
|
||
</div>
|
||
<div class="stat-cell">
|
||
<span class="stat-num" id="satellite-count">—</span>
|
||
<span class="stat-label">在轨卫星</span>
|
||
</div>
|
||
<div class="stat-cell">
|
||
<span class="stat-num" id="bgp-anomaly-count">—</span>
|
||
<span class="stat-label">BGP 事件</span>
|
||
</div>
|
||
<div class="stat-cell">
|
||
<span class="stat-num" id="bgp-collector-count">—</span>
|
||
<span class="stat-label">BGP 观测站</span>
|
||
</div>
|
||
<div class="stat-cell">
|
||
<span class="stat-num stat-num--sm" id="cable-status-summary">—</span>
|
||
<span class="stat-label">运行中</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- BGP status footer -->
|
||
<div class="stats-footer">
|
||
<span class="stats-footer-dot"></span>
|
||
<span id="bgp-status-summary" class="stats-footer-text">暂无观测数据</span>
|
||
</div>
|
||
|
||
<!-- hidden elements kept for JS compatibility -->
|
||
<span id="terrain-status" hidden></span>
|
||
<span id="texture-quality" hidden></span>
|
||
<span id="camera-distance" hidden></span>
|
||
</div>
|
||
|
||
<div id="media-panel" class="hud-panel hud-panel-media hud-panel-draggable" data-panel-key="media-panel" data-drag-self="true">
|
||
<div class="hud-panel__header hud-panel-drag-handle">
|
||
<div class="hud-panel__title-group">
|
||
<span class="hud-panel-title hud-panel__title tv-panel-header-title">媒体情报</span>
|
||
</div>
|
||
<div id="tv-header-controls-live" class="tv-panel-header-controls tv-panel-header-controls--live">
|
||
<select id="tv-source-select" class="tv-panel-select" aria-label="选择新闻直播源"></select>
|
||
<div class="tv-panel-toolbar-actions">
|
||
<button id="tv-refresh" class="hud-panel__action hud-panel__action--refresh" type="button" title="刷新直播源" aria-label="刷新直播源">
|
||
<span class="material-symbols-rounded">refresh</span>
|
||
</button>
|
||
<button id="tv-open-external" class="hud-panel__action hud-panel__action--external" type="button" title="访问官网" aria-label="访问官网">
|
||
<span class="material-symbols-rounded">open_in_new</span>
|
||
</button>
|
||
<button id="tv-meta-toggle" class="hud-panel__action hud-panel__action--collapse tv-panel-meta-toggle" type="button" title="折叠新闻直播内容" aria-label="折叠新闻直播内容">
|
||
<span class="material-symbols-rounded">expand_less</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div id="tv-header-controls-news" class="tv-panel-header-controls tv-panel-header-controls--news" hidden>
|
||
<div class="news-panel-title-row">
|
||
<span id="news-region-chip" class="news-region-chip hud-panel__chip">global</span>
|
||
</div>
|
||
<div class="tv-panel-toolbar-actions">
|
||
<button id="news-refresh" class="hud-panel__action hud-panel__action--refresh" type="button" title="刷新新闻源" aria-label="刷新新闻源">
|
||
<span class="material-symbols-rounded">refresh</span>
|
||
</button>
|
||
<button id="news-open-external" class="hud-panel__action hud-panel__action--external" type="button" title="打开源站" aria-label="打开源站">
|
||
<span class="material-symbols-rounded">open_in_new</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="hud-panel__actions">
|
||
<button class="hud-panel-close hud-panel__action hud-panel__action--close" type="button" data-close-panel="media-panel" aria-label="关闭媒体情报面板">
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tv-panel-content">
|
||
<section id="tv-panel" class="tv-tab-pane tv-tab-pane--active" aria-labelledby="tv-tab-live">
|
||
<div class="tv-panel-meta-wrap" id="tv-meta-wrap">
|
||
<div class="tv-panel-meta" id="tv-panel-meta">
|
||
<span id="tv-source-status" class="tv-panel-status">等待加载直播源</span>
|
||
<div id="tv-source-title" class="tv-panel-title">暂无可用频道</div>
|
||
<div id="tv-source-meta" class="tv-panel-subtitle">当前未配置可播放新闻直播源</div>
|
||
<div id="tv-source-catalog" class="tv-panel-catalog">频道目录待同步</div>
|
||
<div id="tv-source-notes" class="tv-panel-notes">支持后台配置默认源与采集器补充源。</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tv-panel-player">
|
||
<div id="tv-empty-state" class="tv-panel-empty">暂无可播放直播源,请先在系统配置中添加频道。</div>
|
||
<iframe
|
||
id="tv-iframe"
|
||
class="tv-panel-iframe"
|
||
hidden
|
||
title="新闻直播"
|
||
referrerpolicy="strict-origin-when-cross-origin"
|
||
allow="autoplay; fullscreen; picture-in-picture"
|
||
></iframe>
|
||
<video id="tv-video" class="tv-panel-video" hidden controls autoplay muted playsinline></video>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="news-panel" class="tv-tab-pane tv-tab-pane--news" aria-labelledby="tv-tab-news" hidden>
|
||
<div id="news-panel-body" class="news-panel-body">
|
||
<div class="news-panel-subtitle">跟随地球正面视角自动切换区域新闻</div>
|
||
|
||
<div class="news-panel-focus">
|
||
<div>
|
||
<div class="news-focus-kicker">当前关注区域</div>
|
||
<div id="news-focus-label" class="news-focus-label">全球焦点</div>
|
||
<div id="news-focus-coords" class="news-focus-coords">跟随当前视角自动聚焦</div>
|
||
</div>
|
||
<div id="news-source-count" class="news-source-count">0 路聚合源</div>
|
||
</div>
|
||
|
||
<div class="news-board">
|
||
<div id="news-board-status" class="news-board-status">正在准备全球态势新闻...</div>
|
||
<div id="news-board-list" class="news-board-list"></div>
|
||
<div id="news-board-empty" class="news-board-empty" hidden>正在准备全球态势新闻聚合源...</div>
|
||
</div>
|
||
</div>
|
||
<a id="news-feed-anchor" hidden rel="noreferrer noopener" target="_blank"></a>
|
||
</section>
|
||
</div>
|
||
|
||
<div class="media-panel-tabs" role="tablist" aria-label="媒体情报切换">
|
||
<button id="tv-tab-live" class="media-panel-tab media-panel-tab--active" type="button" role="tab" aria-selected="true" aria-controls="tv-panel">电视直播</button>
|
||
<button id="tv-tab-news" class="media-panel-tab" type="button" role="tab" aria-selected="false" aria-controls="news-panel">态势聚合</button>
|
||
</div>
|
||
<div class="tv-panel-edge" data-edge="r"></div>
|
||
<div class="tv-panel-edge" data-edge="b"></div>
|
||
<div class="tv-panel-edge" data-edge="l"></div>
|
||
<div class="tv-panel-edge" data-edge="br"></div>
|
||
<div class="tv-panel-edge" data-edge="bl"></div>
|
||
</div>
|
||
|
||
<div id="status-message" class="earth-status-message" aria-live="polite" aria-atomic="true"></div>
|
||
<div id="tooltip" class="earth-tooltip"></div>
|
||
<div id="settings-modal" class="earth-settings-modal" aria-hidden="true">
|
||
<div id="settings-backdrop" class="earth-settings-backdrop"></div>
|
||
<div class="earth-settings-sheet hud-panel" role="dialog" aria-modal="true" aria-label="设置">
|
||
<div class="earth-settings-header hud-panel__header">
|
||
<div class="hud-panel__title-group">
|
||
<div class="earth-settings-kicker">设置</div>
|
||
</div>
|
||
<button id="settings-close" class="earth-settings-close hud-panel__action hud-panel__action--close" type="button" aria-label="关闭设置">
|
||
<span class="material-symbols-rounded">close</span>
|
||
</button>
|
||
</div>
|
||
<div class="earth-settings-content hud-panel__body">
|
||
<section class="earth-settings-section">
|
||
<div class="earth-settings-section-title">旋转</div>
|
||
<div class="earth-settings-list">
|
||
<div class="earth-settings-item earth-settings-item--stacked">
|
||
<div class="earth-settings-copy">
|
||
<span class="earth-settings-item-title">旋转模式</span>
|
||
<span class="earth-settings-item-subtitle">旋转模式保持普通自转,巡航模式会按 BGP 事件轮播聚焦</span>
|
||
</div>
|
||
<div class="earth-settings-segmented" role="group" aria-label="选择旋转模式">
|
||
<button
|
||
type="button"
|
||
class="earth-settings-segmented-btn is-active"
|
||
data-rotation-mode="rotate"
|
||
aria-pressed="true"
|
||
>
|
||
旋转模式
|
||
</button>
|
||
<button
|
||
type="button"
|
||
class="earth-settings-segmented-btn"
|
||
data-rotation-mode="cruise"
|
||
aria-pressed="false"
|
||
>
|
||
巡航模式
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="earth-settings-section">
|
||
<div class="earth-settings-section-title">视图</div>
|
||
<div class="earth-settings-list">
|
||
<label class="earth-settings-item" for="toggle-view-layers">
|
||
<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-view-layers" type="checkbox" data-settings-panel="layer-toggles" checked>
|
||
<span class="earth-settings-switch-track"></span>
|
||
</span>
|
||
</label>
|
||
<label class="earth-settings-item" for="toggle-view-legend">
|
||
<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-view-legend" type="checkbox" data-settings-panel="legend">
|
||
<span class="earth-settings-switch-track"></span>
|
||
</span>
|
||
</label>
|
||
<label class="earth-settings-item" for="toggle-view-stats">
|
||
<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-view-stats" type="checkbox" data-settings-panel="earth-stats">
|
||
<span class="earth-settings-switch-track"></span>
|
||
</span>
|
||
</label>
|
||
<label class="earth-settings-item" for="toggle-view-tv">
|
||
<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-view-tv" type="checkbox" data-settings-panel="media-panel">
|
||
<span class="earth-settings-switch-track"></span>
|
||
</span>
|
||
</label>
|
||
</div>
|
||
</section>
|
||
<section class="earth-settings-section">
|
||
<div class="earth-settings-section-title">地形</div>
|
||
<div class="earth-settings-list">
|
||
<div class="earth-settings-item earth-settings-item--stacked">
|
||
<div class="earth-settings-copy">
|
||
<span class="earth-settings-item-title">地形透明度</span>
|
||
<span class="earth-settings-item-subtitle">调高后会呈现更明显的绿色地形覆盖效果</span>
|
||
</div>
|
||
<div class="earth-settings-slider-row">
|
||
<input
|
||
id="terrain-opacity-slider"
|
||
class="earth-settings-slider"
|
||
type="range"
|
||
min="0.05"
|
||
max="1"
|
||
step="0.01"
|
||
value="0.62"
|
||
aria-label="调整地形透明度"
|
||
>
|
||
<span id="terrain-opacity-value" class="earth-settings-slider-value">62%</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="earth-settings-section">
|
||
<div class="earth-settings-section-title">系统</div>
|
||
<div class="earth-settings-list">
|
||
<a
|
||
class="earth-settings-item earth-settings-link"
|
||
href="/admin"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
>
|
||
<div class="earth-settings-copy">
|
||
<span class="earth-settings-item-title">Admin</span>
|
||
<span class="earth-settings-item-subtitle">打开管理后台仪表盘</span>
|
||
</div>
|
||
<span class="earth-settings-link-meta">
|
||
<span class="material-symbols-rounded">admin_panel_settings</span>
|
||
<span class="material-symbols-rounded">arrow_forward</span>
|
||
</span>
|
||
</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="module" src="js/main.js"></script>
|
||
</body>
|
||
</html>
|