+
cyclone
diff --git a/src/components/domain/One/Labels.jsx b/src/components/domain/One/Labels.jsx
index 6401346..02f7c63 100644
--- a/src/components/domain/One/Labels.jsx
+++ b/src/components/domain/One/Labels.jsx
@@ -1,5 +1,21 @@
-import { Entity, LabelGraphics, useCesium } from "resium";
-import { Cartesian2, Cartesian3, Color, LabelStyle } from "cesium";
+import {
+ CorridorGraphics,
+ Entity,
+ LabelGraphics,
+ PolylineGraphics,
+ useCesium,
+} from "resium";
+import {
+ CallbackProperty,
+ Cartesian2,
+ Cartesian3,
+ Color,
+ ColorBlendMode,
+ CornerType,
+ LabelStyle,
+ Material,
+ PolylineArrowMaterialProperty,
+} from "cesium";
import { Fragment, useCallback, useState } from "react";
import { useInterval } from "ahooks";
@@ -33,17 +49,6 @@ function Labels() {
return (
-
-
-
-
+
+
-
+
);
diff --git a/src/components/domain/Two/Circles.jsx b/src/components/domain/Two/Circles.jsx
index e83d93c..e388db5 100644
--- a/src/components/domain/Two/Circles.jsx
+++ b/src/components/domain/Two/Circles.jsx
@@ -1,10 +1,10 @@
import { Fragment, useState } from "react";
import {
Entity,
- EllipsoidGraphics,
useCesium,
PolylineGraphics,
LabelGraphics,
+ ModelGraphics,
} from "resium";
import { useInterval } from "ahooks";
import {
@@ -14,43 +14,36 @@ import {
LabelStyle,
PolylineDashMaterialProperty,
Cartesian2,
+ ColorBlendMode,
} from "cesium";
+import arrowRound from "@/assets/arrow_round.glb";
+import arrowRoundReverse from "@/assets/arrow_round_reverse.glb";
-const lowCircle = (
-
-);
-
-const highCircle = (
-
-);
-
-// const labelText={
-// '5月南极涛动','Rossby波列' , '印度洋海温异常(信号存储)', '6月青藏高原降水(80个站点)和加热'
-// }
+const anticycloneColor = Color.fromCssColorString("#f70000");
+const cycloneColor = Color.fromCssColorString("#0000ff");
function Circles() {
const { viewer } = useCesium();
const Circle = ({ id, lon, lat, isLow, showTime }) => {
- const circle = isLow ? lowCircle : highCircle;
const [show, setShow] = useState(false);
+ const arrow = !isLow ? arrowRound : arrowRoundReverse;
+ const color = !isLow ? anticycloneColor : cycloneColor;
+ const minimumPixelSize = !isLow ? 128 : 98;
+
+ const circle = (
+
+ );
useInterval(() => {
const { startTime, currentTime, shouldAnimate } = viewer.clock;
- const _time = Math.floor(
- currentTime.secondsOfDay - startTime.secondsOfDay
+ const _time = (currentTime.secondsOfDay - startTime.secondsOfDay).toFixed(
+ 1
);
if (!shouldAnimate) return;
if (_time >= showTime) {
@@ -123,27 +116,55 @@ function Circles() {
+
+
+
+
-
+
Low
@@ -26,7 +26,7 @@ function EntityLegend() {
anti-Hadley cell
-
+
High
diff --git a/src/components/domain/Two/HadleyCell.jsx b/src/components/domain/Two/HadleyCell.jsx
new file mode 100644
index 0000000..34b3965
--- /dev/null
+++ b/src/components/domain/Two/HadleyCell.jsx
@@ -0,0 +1,56 @@
+import { Cartesian3, Color, PolylineArrowMaterialProperty } from "cesium";
+import { Fragment } from "react";
+import { Entity, PolylineGraphics } from "resium";
+
+export default function HadleyCell() {
+ return (
+
+ {/* 右下部分 */}
+ {/*
+
+
+
+
+ */}
+
+
+
+ {/* 左上部分 */}
+
+
+
+
+ );
+}
diff --git a/src/components/domain/Two/Point.jsx b/src/components/domain/Two/Point.jsx
index 395a32f..b82a7e4 100644
--- a/src/components/domain/Two/Point.jsx
+++ b/src/components/domain/Two/Point.jsx
@@ -16,9 +16,13 @@ import {
const dataAntarcticaToQTP = [
{ longitude: -110, latitude: -60, height: 0, time: 0 },
{ longitude: -110, latitude: -60, height: 1000000, time: 2 },
+ { longitude: -70, latitude: -64, height: 1000000, time: 4.5 },
{ longitude: -30, latitude: -55, height: 1000000, time: 7 },
+ { longitude: 0, latitude: -52.5, height: 1000000, time: 9.5 },
{ longitude: 30, latitude: -40, height: 1000000, time: 12 },
+ { longitude: 45.5, latitude: -39, height: 1000000, time: 14 },
{ longitude: 65, latitude: -35, height: 1000000, time: 16 },
+ { longitude: 80, latitude: -33.5, height: 1000000, time: 18 },
{ longitude: 95, latitude: -30, height: 1000000, time: 20 },
{ longitude: 95, latitude: -30, height: 0, time: 25 },
];
diff --git a/src/components/domain/Two/SiteLegend.jsx b/src/components/domain/Two/SiteLegend.jsx
index dce5fb2..8beddb2 100644
--- a/src/components/domain/Two/SiteLegend.jsx
+++ b/src/components/domain/Two/SiteLegend.jsx
@@ -31,13 +31,20 @@ function SiteLegend() {
style={{ transform: "rotate(180deg)" }}
/>
-
感热通量异常增加
+
+ 感热通量
+
+ 异常增加
+
-
感热通量异常降低
+
+ 感热通量
+ 异常降低
+
);
diff --git a/src/components/domain/Two/index.jsx b/src/components/domain/Two/index.jsx
index 595e615..5e99427 100644
--- a/src/components/domain/Two/index.jsx
+++ b/src/components/domain/Two/index.jsx
@@ -15,6 +15,7 @@ import Sites from "./Site";
import SiteLegend from "./SiteLegend";
import Labels from "./Labels";
import TimeLinePanel from "./TimeLinePanel";
+import HadleyCell from "./HadleyCell";
export default function DomainTwo() {
return (
@@ -37,6 +38,7 @@ export default function DomainTwo() {
*/}
);
diff --git a/src/components/domain/Two/index.module.less b/src/components/domain/Two/index.module.less
index 6b77dd2..cfc3058 100644
--- a/src/components/domain/Two/index.module.less
+++ b/src/components/domain/Two/index.module.less
@@ -18,6 +18,7 @@
gap: 8px;
.site-legend-item-name {
+ font-size: 20px;
font-weight: 700;
}
}