南半球冬季200hPa涡动位势高度异常(单位:gpm)
diff --git a/src/components/domain/Three/SceneTwo/Point.jsx b/src/components/domain/Three/SceneTwo/Point.jsx
new file mode 100644
index 0000000..3f28670
--- /dev/null
+++ b/src/components/domain/Three/SceneTwo/Point.jsx
@@ -0,0 +1,101 @@
+import { useState } from "react";
+import { Entity, PointGraphics, useCesium } from "resium";
+import { useInterval } from "ahooks";
+import {
+ Cartesian3,
+ Color,
+ JulianDate,
+ LagrangePolynomialApproximation,
+ PolylineDashMaterialProperty,
+ SampledPositionProperty,
+ TimeInterval,
+ TimeIntervalCollection,
+ VelocityOrientationProperty,
+} from "cesium";
+
+const data = [
+ { longitude: 18, latitude: -50, height: 0, time: 0 },
+ { longitude: 18, latitude: -50, height: 1000000, time: 2 },
+ { longitude: 80, latitude: -50, height: 1000000, time: 7 },
+ { longitude: 130, latitude: -40, height: 1000000, time: 12 },
+ { longitude: 166, latitude: -55, height: 1000000, time: 17 },
+ { longitude: -130, latitude: -65, height: 1000000, time: 22 },
+];
+
+function Point() {
+ const { viewer } = useCesium();
+ const [delay, setDelay] = useState(1000);
+
+ const start = viewer.clock.startTime;
+ const stop = viewer.clock.stopTime;
+
+ const pathMaterial = new PolylineDashMaterialProperty({
+ dashLength: 20,
+ color: new Color(4 / 255, 251 / 255, 253 / 255),
+ });
+
+ useInterval(() => {
+ if (viewer.clock?.shouldAnimate) setDelay(undefined);
+ }, delay);
+
+ /**
+ * 计算飞行路径
+ * 数据坐标
+ * {SampledPositionProperty|*}
+ */
+ function createProperty(source) {
+ let property = new SampledPositionProperty();
+ for (let i = 0; i < source.length; i++) {
+ let time = JulianDate.addSeconds(start, source[i].time, new JulianDate());
+ let position = Cartesian3.fromDegrees(
+ source[i].longitude,
+ source[i].latitude,
+ source[i].height
+ );
+ // 添加位置,和时间对应
+ property.addSample(time, position);
+ }
+ // property.setInterpolationOptions({
+ // interpolationDegree: 2,
+ // interpolationAlgorithm: LagrangePolynomialApproximation,
+ // });
+
+ return property;
+ }
+
+ const property = createProperty(data);
+
+ return (
+
+
+
+ );
+}
+
+export default Point;
diff --git a/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx b/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx
deleted file mode 100644
index cf8dbbd..0000000
--- a/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx
+++ /dev/null
@@ -1,128 +0,0 @@
-import ChartPanel from "@/components/common/ChartPanel";
-
-const years = [];
-
-for (let year = 1950; year <= 2020; year++) {
- years.push(year);
-}
-
-const SATData = [
- 0.429685116, 0.689356685, 0.873310268, 0.967009068, 1.003803611, 1.036836505,
- 1.102791905, 1.167440891, 1.17760396, 1.124955773, 1.01085484, 0.859563529,
- 0.71795398, 0.621988237, 0.597750485, 0.598902822, 0.532728314, 0.342583299,
- -0.024368536, -0.493425161, -0.9331339, -1.273939967, -1.476933718,
- -1.554893732, -1.475591898, -1.279159307, -1.064661622, -0.922379196,
- -0.918932199, -1.11133039, -1.43390727, -1.801198602, -2.015464544,
- -2.0192132, -1.855630398, -1.571777582, -1.243658185, -1.025858879,
- -0.930935264, -0.869536936, -0.719216347, -0.443715662, -0.130082458,
- 0.151266798, 0.290564477, 0.236905336, 0.056489315, -0.14797987, -0.240299582,
- -0.17908895, 0.034180526, 0.390409917, 0.806362808, 1.218396306, 1.526551723,
- 1.709755898, 1.74579525, 1.635397196, 1.387297392, 1.11059618, 0.822289705,
- 0.581417382, 0.404003143, 0.258351594, 0.119950205, 0.01043385, -0.079203822,
- -0.124122731, -0.129883319, -0.031686373, 0.16967541,
-];
-
-const SSTData = [
- 1.212813735, 1.429750562, 1.521738529, 1.469550729, 1.316006422, 1.125649571,
- 0.986746848, 0.915246606, 0.915339172, 0.951494932, 0.970494628, 0.926436901,
- 0.79472959, 0.602078795, 0.395833611, 0.238499194, 0.111982882, -0.020530188,
- -0.205848336, -0.508775234, -0.927411437, -1.398505688, -1.82903564,
- -2.119443178, -2.199231863, -2.063818693, -1.770155549, -1.401496291,
- -1.074879527, -0.84980756, -0.789860964, -0.888945699, -1.096244812,
- -1.2922014, -1.367582083, -1.272272468, -1.035024524, -0.74733454,
- -0.570655763, -0.564872324, -0.715999901, -0.92039144, -1.045125961,
- -0.965325236, -0.686810315, -0.263357043, 0.127493069, 0.37617141,
- 0.430310369, 0.350464702, 0.266462713, 0.269338131, 0.410024047, 0.642185688,
- 0.879462898, 1.070014119, 1.173520446, 1.198034406, 1.178782582, 1.129892349,
- 1.029724956, 0.902248025, 0.708711326, 0.465828151, 0.227744579, 0.055393901,
- 0.002014907, 0.076390825, 0.281141222, 0.559546649, 0.895649433,
-];
-
-function SceneChartPanel() {
- const option = {
- title: {
- // text: "Stacked Line",
- },
- tooltip: {
- trigger: "axis",
- },
- legend: {
- data: ["南极半岛", "热带大西洋"],
- textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 },
- },
- animationDuration: 10 * 1000,
- animationEasing: "cubicInOut",
- grid: {
- left: "3%",
- right: "4%",
- bottom: "3%",
- containLabel: true,
- },
- xAxis: {
- type: "category",
- boundaryGap: false,
- data: years,
- axisLine: {
- onZero: false,
- symbol: ["none", "arrow"],
- symbolOffser: [0, 10],
- lineStyle: {
- color: "#04fbfd",
- },
- },
- },
- yAxis: {
- type: "value",
- min: -3.0,
- max: 2.0,
- interval: 1.0,
- splitNumber: 5,
- splitLine: { show: false },
- axisLine: {
- onZero: false,
- show: true,
- symbol: ["none", "arrow"],
- symbolOffset: [0, 10],
- lineStyle: {
- color: "#04fbfd",
- },
- },
- axisLabel: {
- show: true,
- },
- axisTick: { show: true },
- scale: true,
- },
- dataZoom: { type: "inside", start: 0, end: 100 },
- series: [
- {
- name: "南极半岛",
- type: "line",
- // stack: "Total",
- data: SATData,
- smooth: true,
- color: "blue",
- symbol: "none",
- itemStyle: {
- color: "blue",
- },
- },
- {
- name: "热带大西洋",
- type: "line",
- // stack: "Total",
- data: SSTData,
- smooth: true,
- color: "red",
- symbol: "none",
- itemStyle: {
- color: "red",
- },
- },
- ],
- };
-
- return
;
-}
-
-export default SceneChartPanel;
diff --git a/src/components/domain/Three/SceneTwo/index.jsx b/src/components/domain/Three/SceneTwo/index.jsx
index 694a29b..7c03b3b 100644
--- a/src/components/domain/Three/SceneTwo/index.jsx
+++ b/src/components/domain/Three/SceneTwo/index.jsx
@@ -1,11 +1,13 @@
import MapLayout from "@/components/map/Layout";
import Legend from "./Legend";
import ViewerOne from "../SceneOne/ViewerOne";
-import SceneChartPanel from "./SceneChartPanel";
import CustomFlyTo from "./CustomFlyTo";
import SSTImageLayer from "./SSTImageLayer";
import TSImageLayer from "./TSImageLayer";
import HGTImageLayer from "./HGTImageLayer";
+import Point from "./Point";
+import Circles from "./Circles";
+import CustomChartPanel from "./CustomChartPanel";
function SceneTwo() {
return (
@@ -16,18 +18,17 @@ function SceneTwo() {