【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(GIS / vue / react / tle / czml 提供全部源代码)
基于Cesium.JS绘制卫星轨迹Satellite(GIS / vue / react / tle / czml 提供全部源代码);Cesium.js 是一个开源的 JavaScript 库,专注于构建高性能的 3D 地理空间应用程序。它支持在浏览器中实时渲染全球地形、卫星影像、矢量数据及 3D 模型,并集成动态时间轴功能,适用于地图可视化、飞行模拟、灾害监测、智慧城市等领域。其核心特性包括:多
| 🍺AI系列相关文章🍺: | |
|---|---|
| 1 | 【小沐学AI】基于AI大模型开发MCP Server服务(Cesium.JS、Three.JS、Blender) |
文章目录
1、简介
1.1 Cesium.JS
Cesium.js 是一个开源的 JavaScript 库,专注于构建高性能的 3D 地理空间应用程序。它支持在浏览器中实时渲染全球地形、卫星影像、矢量数据及 3D 模型,并集成动态时间轴功能,适用于地图可视化、飞行模拟、灾害监测、智慧城市等领域。其核心特性包括:
多源数据集成:支持加载地形、影像、3D 模型(如 glTF)、GeoJSON 等数据格式。
动态交互:提供时间轴控件,可实现时间相关的数据动态展示(如航班轨迹)。
跨平台性:兼容 WebGL,可在桌面和移动端浏览器中运行210。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Cesium 入门示例</title>
<!-- 引入 Cesium.js 及样式 -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.117/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.117/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// 设置 Cesium ion 访问令牌(需替换为实际令牌)
Cesium.Ion.defaultAccessToken = 'your_access_token';
// 初始化 3D 地球场景
const viewer = new Cesium.Viewer('cesiumContainer', {
terrain: Cesium.Terrain.fromWorldTerrain(), // 加载全球地形
sceneMode: Cesium.SceneMode.SCENE3D, // 默认 3D 模式
baseLayerPicker: false // 隐藏默认图层选择器
});
// 添加标记点(旧金山坐标)
const marker = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-122.4175, 37.655),
point: {
pixelSize: 10,
color: Cesium.Color.RED,
outlineColor: Cesium.Color.WHITE,
outlineWidth: 2
},
label: {
text: "旧金山",
font: '16px sans-serif',
fillColor: Cesium.Color.WHITE,
pixelOffset: new Cesium.Cartesian2(0, -20)
}
});
// 加载 3D 建筑层
(async function addBuildings() {
const buildings = await Cesium.createOsmBuildingsAsync();
viewer.scene.primitives.add(buildings);
})();
// 调整相机视角至标记点
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-122.4175, 37.655, 500),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-30)
}
});
</script>
</body>
</html>
1.2 六根数
在二体问题中,轨道根数(orbital elements)是描述物体运动轨迹的简便形式。三维空间中,唯一确定物体轨迹需要六个参数,如位置矢量和速度矢量(均为三维)可共同确定物体轨迹。此外,用六个轨道根数也可描述它。通常的轨道六根数指的是:半长轴、离心率、轨道倾角、近心点辐角、升交点经度和真近点角。经过三角函数运算,它们能表示出物体所处特定位置和速度。
1.3 两行轨道根数TLE
TLE,Two-Line Orbital Element,两行轨道数据(两行轨道根数)。
TLE 是一种标准格式,用于描述卫星的轨道参数,由美国北美航空航天防御司令部(NORAD)开发并广泛应用于卫星跟踪和轨道计算。TLE 由两行文本组成,每行包含特定的轨道参数。
两行轨道根数(Two Line Elements)是描述地球轨道在轨卫星(或空间碎片)运行位置参数的标准方法,了解TLE的格式可以对未来或过去的卫星过境情况进行预测或分析。TLE的实际含义是在轨飞行器在某一具体时刻的运动参数,而这一时刻被称作纪元(epoch)。不考虑飞行器在轨机动的前提下,假如知道了该飞行器两天前的位置和运动参数,即可预测其当前或未来的位置。TLE需要持续更新,超过两周的TLE数据将会使预测出现很大偏差。

1.4 CZML
CZML是Cesium团队制定的一种用来描述动态场景的JSON架构语言,可以用来描述点、线、多边形、体、 模型 及其他图元,同时定义它们是怎样随时间变化的。 CZML采用 数据驱动 的方式完成场景加载渲染,开发者在CZML中定义场景数据类型、交互信息、时间节点等内容,不需要额外的代码便可构建出丰富的场景。 Cesium与CZML的关系就如同Google Earth 和 KML 的关系。
2、代码测试
2.1 代码1
代码编号:B1_1_CesiumJS_Satellite_js_vue


2.2 代码2
代码编号:B1_2_CesiumJS_Satellite_js_vite


2.3 代码3
代码编号:B1_3_CesiumJS_Satellite_js_next



2.4 代码4
代码编号:B1_4_CesiumJS_Satellite_js_html


2.5 代码5
代码编号:B1_5_CesiumJS_Satellite_js_html_czml



2.6 代码6
代码编号:B1_6_CesiumJS_Satellite_js_html_czml


2.7 代码7
代码编号:B1_7_CesiumJS_Satellite_python_html_czml


2.8 代码8
代码编号:B1_8_CesiumJS_Satellite_js_html_six_2d3d



2.9 代码9
代码编号:B1_9_CesiumJS_Satellite_js_vite_tle


2.10 代码10
代码编号:B1_10_CesiumJS_Satellite_js_vite_tle_2d3d

2.11 代码11
代码编号:B1_11_GIS_CesiumJS_Satellite_js_webpack_tle


2.12 代码12
代码编号:B1_12_CesiumJS_Satellite_js_html_tle


2.13 代码13
代码编号:B1_13_CesiumJS_Satellite_js_vue3_tle

2.14 代码14
代码编号:B1_14_CesiumJS_Satellite_js_vue3_czml

2.15 代码15
代码编号:B1_15_CesiumJS_Satellite_js_vue3_tle


2.16 代码16
代码编号:B1_16_CesiumJS_Satellite_js_tle_2d3d

2.17 代码17
代码编号:B1_17_CesiumJS_Satellite_js_React_tle


2.18 代码18
代码编号:B1_18_CesiumJS_Satellite_ts_react_next_tle
2.19 代码19
代码编号:B1_19_CesiumJS_Satellite_js

2.20 代码20
代码编号:B1_20_CesiumJS_Satellite_js_samples



2.21 代码21
代码编号:B1_21_CesiumJS_Satellite_js_vue3_vite


2.22 代码22
代码编号:B1_22_CesiumJS_Satellite_js_vue3_vite


2.23 代码23
代码编号:B1_23_CesiumJS_Satellite_js_vue3_vite


2.24 代码24
代码编号:B1_22_CesiumJS_Satellite_js_vue3_vite


2.25 代码25
代码编号:B1_25_CesiumJS_Satellite_js_vue3_vite

2.26 代码26
代码编号:B1_26_CesiumJS_Satellite_js_vue3_vite

2.27 代码27
代码编号:B1_27_CesiumJS_Satellite_js_vue3_vite

2.28 代码28
代码编号:B1_28_CesiumJS_Satellite_js_tle_2d3d
- cesium+openlayer

- cesium+mapbox

- cesium+leaflet

- cesium + arcgis.js

- cesium+echarts

2.29 代码29
代码编号:B1_29_CesiumJS_Satellite_js_tle

2.30 代码30
代码编号:B1_30_CesiumJS_Satellite_js_tle



3、代码测试(火箭)
3.1 代码1
代码编号:B2_1_CesiumJS_Rocket

4、代码测试(态势感知)
4.1 代码1
代码编号:B4_1_CesiumJS_War_js_glb
结语
如果您觉得这些文字有一点点用处,请给作者点个赞;╮( ̄▽ ̄)╭
如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ `` )っ!
更多精彩文章详见微信公众号:爱阅读的小沐
如需技术探讨 / 软件定制 / 代码分享,请加文章末尾的微信公众号或QQ!
更多推荐
所有评论(0)