feat: add new file

This commit is contained in:
Daniel
2026-03-01 19:23:48 +08:00
parent d705fd6c83
commit c07fc681dd
24 changed files with 2711 additions and 166 deletions

284
map.md Normal file
View File

@@ -0,0 +1,284 @@
[
{
"name": "USS Abraham Lincoln CSG",
"type": "Aircraft Carrier Strike Group",
"lat": 12.5,
"lng": 50.0,
"region": "Arabian Sea SE of Socotra"
},
{
"name": "Destroyer (Gulf of Oman)",
"type": "Destroyer",
"lat": 25.2,
"lng": 58.0,
"region": "Gulf of Oman"
},
{
"name": "Coast Guard Ship 1 (Gulf of Oman)",
"type": "Coast Guard",
"lat": 25.4,
"lng": 58.2,
"region": "Gulf of Oman"
},
{
"name": "Coast Guard Ship 2 (Gulf of Oman)",
"type": "Coast Guard",
"lat": 25.0,
"lng": 57.8,
"region": "Gulf of Oman"
},
{
"name": "Destroyer (Northern Persian Gulf)",
"type": "Destroyer",
"lat": 26.5,
"lng": 51.0,
"region": "Persian Gulf"
},
{
"name": "Frigate 1 (Persian Gulf)",
"type": "Frigate",
"lat": 26.7,
"lng": 50.6,
"region": "Persian Gulf"
},
{
"name": "Frigate 2 (Persian Gulf)",
"type": "Frigate",
"lat": 27.0,
"lng": 50.2,
"region": "Persian Gulf"
},
{
"name": "Frigate 3 (Persian Gulf)",
"type": "Frigate",
"lat": 26.3,
"lng": 50.8,
"region": "Persian Gulf"
},
{
"name": "Auxiliary Ship 1",
"type": "Auxiliary",
"lat": 26.0,
"lng": 51.2,
"region": "Persian Gulf"
},
{
"name": "Auxiliary Ship 2",
"type": "Auxiliary",
"lat": 25.8,
"lng": 51.5,
"region": "Persian Gulf"
},
{
"name": "Auxiliary Ship 3",
"type": "Auxiliary",
"lat": 26.2,
"lng": 50.9,
"region": "Persian Gulf"
}
]
卡塔尔
Al Udeid Air Base
Camp As Sayliyah
🇧🇭 巴林
Naval Support Activity Bahrain
🇰🇼 科威特
Camp Arifjan
Ali Al Salem Air Base
Camp Buehring
🇦🇪 阿联酋
Al Dhafra Air Base
🇸🇦 沙特阿拉伯
Prince Sultan Air Base
Eskan Village
🇮🇶 伊拉克
Al Asad Airbase
Erbil Air Base
Baghdad Diplomatic Support Center
Camp Taji
Ain al-Asad (部分文献与 Al Asad 同义但可单列展示)
🇸🇾 叙利亚(驻点)
Al-Tanf Garrison
Rmelan Landing Zone
Shaddadi Base
Conoco Gas Field Base
🇯🇴 约旦
Muwaffaq Salti Air Base
🇹🇷 土耳其
Incirlik Air Base
Kürecik Radar Station
🇮🇱 以色列(合作设施)
Nevatim Air Base (美军设施区)
Ramon Air Base (协作区)
🇴🇲 阿曼
Thumrait Air Base
Masirah Air Base
🇪🇬 埃及(区域支援)
West Cairo Air Base
🇩🇯 吉布提(非波斯湾但中东行动关键)
地图基础设置
中心:
center: [52.5, 26.5]
zoom: 5.2
style: "mapbox://styles/mapbox/dark-v11"
二、27 个基地完整 JSON 数据
[
{ "id": 1, "name": "Al Udeid Air Base", "country": "Qatar", "lat": 25.117, "lng": 51.314 },
{ "id": 2, "name": "Camp As Sayliyah", "country": "Qatar", "lat": 25.275, "lng": 51.520 },
{ "id": 3, "name": "Naval Support Activity Bahrain", "country": "Bahrain", "lat": 26.236, "lng": 50.608 },
{ "id": 4, "name": "Camp Arifjan", "country": "Kuwait", "lat": 28.832, "lng": 47.799 },
{ "id": 5, "name": "Ali Al Salem Air Base", "country": "Kuwait", "lat": 29.346, "lng": 47.520 },
{ "id": 6, "name": "Camp Buehring", "country": "Kuwait", "lat": 29.603, "lng": 47.456 },
{ "id": 7, "name": "Al Dhafra Air Base", "country": "UAE", "lat": 24.248, "lng": 54.547 },
{ "id": 8, "name": "Prince Sultan Air Base", "country": "Saudi Arabia", "lat": 24.062, "lng": 47.580 },
{ "id": 9, "name": "Eskan Village", "country": "Saudi Arabia", "lat": 24.774, "lng": 46.738 },
{ "id": 10, "name": "Al Asad Airbase", "country": "Iraq", "lat": 33.785, "lng": 42.441 },
{ "id": 11, "name": "Erbil Air Base", "country": "Iraq", "lat": 36.237, "lng": 43.963 },
{ "id": 12, "name": "Baghdad Diplomatic Support Center", "country": "Iraq", "lat": 33.315, "lng": 44.366 },
{ "id": 13, "name": "Camp Taji", "country": "Iraq", "lat": 33.556, "lng": 44.256 },
{ "id": 14, "name": "Ain al-Asad", "country": "Iraq", "lat": 33.800, "lng": 42.450 },
{ "id": 15, "name": "Al-Tanf Garrison", "country": "Syria", "lat": 33.490, "lng": 38.618 },
{ "id": 16, "name": "Rmelan Landing Zone", "country": "Syria", "lat": 37.015, "lng": 41.885 },
{ "id": 17, "name": "Shaddadi Base", "country": "Syria", "lat": 36.058, "lng": 40.730 },
{ "id": 18, "name": "Conoco Gas Field Base", "country": "Syria", "lat": 35.336, "lng": 40.295 },
{ "id": 19, "name": "Muwaffaq Salti Air Base", "country": "Jordan", "lat": 32.356, "lng": 36.259 },
{ "id": 20, "name": "Incirlik Air Base", "country": "Turkey", "lat": 37.002, "lng": 35.425 },
{ "id": 21, "name": "Kurecik Radar Station", "country": "Turkey", "lat": 38.354, "lng": 37.794 },
{ "id": 22, "name": "Nevatim Air Base", "country": "Israel", "lat": 31.208, "lng": 35.012 },
{ "id": 23, "name": "Ramon Air Base", "country": "Israel", "lat": 30.776, "lng": 34.666 },
{ "id": 24, "name": "Thumrait Air Base", "country": "Oman", "lat": 17.666, "lng": 54.024 },
{ "id": 25, "name": "Masirah Air Base", "country": "Oman", "lat": 20.675, "lng": 58.890 },
{ "id": 26, "name": "West Cairo Air Base", "country": "Egypt", "lat": 30.915, "lng": 30.298 },
{ "id": 27, "name": "Camp Lemonnier", "country": "Djibouti", "lat": 11.547, "lng": 43.159 }
]
三、状态模型
type BaseStatus = "operational" | "damaged" | "attacked"
interface BaseAttackStatus {
id: number
status: BaseStatus
damageLevel: 1 | 2 | 3
attackTime?: number
}
四、可视化规则
1⃣ 状态颜色
operational → 绿色稳定点
damaged → 橙色闪烁
attacked → 红色脉冲扩散动画
2⃣ 红色脉冲动画
2 秒循环
扩散半径 0 → 40px
opacity 1 → 0
3⃣ 伊朗攻击源
固定发射源坐标:
const IRAN_SOURCE = [51.3890, 35.6892] // Tehran
攻击动画使用抛物线 LineLayer
颜色:#ff0000
线宽2px
飞行时间1200ms
五、大屏右侧态势面板
显示:
总基地数27
被袭击X
严重损毁X
中度损毁X
轻度损毁X
每 5 秒自动刷新统计。
六、性能要求
使用 requestAnimationFrame
禁止重复创建 marker
所有动画走 WebGL 图层
禁止 DOM 动画