From 6e93d037de35d08246544100afd56f2e7da006c1 Mon Sep 17 00:00:00 2001 From: mmc <1556375442@qq.com> Date: Tue, 7 Jul 2026 16:06:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E4=B8=80=E4=B8=8B?= =?UTF-8?q?=20=E6=9C=BA=E5=99=A8=E8=BD=AC=E5=90=91=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- env.js | 2 +- src/assets/images/mowericon.png | Bin 0 -> 1215 bytes src/assets/images/planeicon.png | Bin 0 -> 919 bytes src/components/Map.jsx | 51 ++++++----- .../SystemSetting/ErrorManagement.tsx | 3 +- src/components/devices/DeviceOverviewPage.tsx | 6 +- src/components/devices/DeviceStatusPage.tsx | 82 ++++++++++-------- src/index.css | 7 ++ 8 files changed, 87 insertions(+), 64 deletions(-) create mode 100644 src/assets/images/mowericon.png create mode 100644 src/assets/images/planeicon.png diff --git a/env.js b/env.js index b0abf95..9fd367d 100644 --- a/env.js +++ b/env.js @@ -18,7 +18,7 @@ const envConfig = { baseURL: 'http://1.95.137.212:8081',//http://192.168.2.56:8081 //baseURL: 'https://serviceri.satabot.com', WS_URL: 'ws://1.95.137.212:9002/ws/', - mqtt_url: "ws://1.95.137.212:59021/mqtt", + mqtt_url: "ws://1.95.137.212:8083/mqtt", geoserver_url: "http://1.95.137.212:59018/geoserver" //baseURL: 'http://1.95.137.212:59015',//http://192.168.2.56:8081 diff --git a/src/assets/images/mowericon.png b/src/assets/images/mowericon.png new file mode 100644 index 0000000000000000000000000000000000000000..21f2f645165946a6df6efe705b6d94b6a10f5e6b GIT binary patch literal 1215 zcmV;w1VHq-n$sFuw+lZe(tV#Bv z6WppIO;U$z)6Ri(?NAHC=C3&>{uzk-u_7|T(lvSS@i}jklC()|=2rG&;eC4UdG5XE zJny;pzP*NSfZt6K`9-){iT_=R;8@_*&{*I|C>=Np`~`dy9O>xK2d>6m)p8)=X%;#} zLS003KX5zH#)kXQH{Nq}>w5SreySD`Om}{U=#4Rth^ydKB|=2nE5s`96588y{H6M0vb0x~2x8h;I!p0YnRJXE4*8C9K# zg-y6DNI60*KU}V_kgrMv_QSct$^X^1Ojjo&IMV(k&j0Ir<`vkC{h`r71YAUfPvKa; zRR|`Il!GDuS?4P>RvzK8z}CVSFollWHYlOc0X_2yA?d?j=tbgQ*D@7Z?OzErRvses ziJL3;XHf*yHsM%JGI3L`?|PcGg~1m^CVZ?O{L6ECmR&8Z*{_OZt_vlPO@Ux2VYu?!Ym4*C*h zVdPHDq1cmt;Vu>AiU_AW+9Z>?C?u0E96KQjhGqMeuyah|=8n=7#!jIUXT(FHC{7WoGzf0SV`x`+w6p8Y z@xX@s*%xB>RuxQl>=nb)79Z43ft|;E{2}^~L literal 0 HcmV?d00001 diff --git a/src/assets/images/planeicon.png b/src/assets/images/planeicon.png new file mode 100644 index 0000000000000000000000000000000000000000..65832aaec15dd78fdaf81e5d08d381cac65e4858 GIT binary patch literal 919 zcmV;I18Dq-P)F|82{dA1wsYUpF;!{79|k{l9#BAz=McgcFdd!mvqLWLlH=~_8JLxF?3cm+;PQG zf=W6_Qc#CTq(dif9kQZR6b6rTM z4tvb#wjJX=b)@-Qd(`Mkr;VKvB_WcTzGp_o0+hV~gqr|x0{B6w0Rgw&a+qYCL#6ge zW-5L`rvNzVSB&F~`(a_RNM?w%x0tX{@N6+W2qWDfC^(J^RtBSlpg2dLCAUasO0FVF z*f0~cQ5!q6u`@wC5EL)@ouNCZ8zjz=l+!-tIPqOUh5h2vW)g{nLKosNEZs+bT6r-6 z;`{<`dSg3gRUS}eA!R0=Zrf8?^?8PLE>o9oLcn1JoKB6jNu9`{W`-Vj9P`SRujF9q zcBV-wO#oDgGUes)m=O!(6*ZF{Hye~i??ae~42}qnJ=T7`SZ<)1)Toj0JbYS=Tr!5D zhjoK^zGj#}-}l`h(!a!6m-YQL)|lZ$Cio?PDS5}+zU?3tHtEdaIx7iF zvwAW##8bs~%t1;#&5PwOV2X&1nrfZWRqMX4TVIy32$L&yUGpufW$9}24C?~v7s%-B zgLVd6R{$}A0@}5hb%BWM`?Jm#VO`eeI%H}x8>RtU6@D2rz;AD#ruH@HF{_`D|K7L` znX3EaDhI%WTkJ#8V#(SJp!I)}aWFX2v0o-{WZbNl$%{Ale$*~m57>tyL&)Xu*|4e1 zn+1u#5UxiTB%R_puFNQ9hHvfEsA==rK%$$eOEu1C9`j`gSu??@^p;n-Y3$-1G%dM6m; zGl#fuC6{Z{RrNoX7dhql6#S tL)%{f00960cJQ2%00006Nkl createYellowCircleCanvas(30), @@ -290,6 +292,7 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, }; + useEffect(() => { if (viewerRef.current) { drawTrackLine(points); @@ -722,8 +725,8 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, position, billboard: { image: carImg, - width: 60, - height: 60, + width: 30, + height: 30, verticalOrigin: window.Cesium.VerticalOrigin.BOTTOM, disableDepthTestDistance: Number.POSITIVE_INFINITY }, @@ -784,7 +787,6 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, }; }, []); - const focusEntityRef = useRef(null); useEffect(() => { // 如果有 realtimePosition,不显示 focusEntity @@ -824,8 +826,8 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, position: Cesium.Cartesian3.fromDegrees(Number(focusLocation.lon), Number(focusLocation.lat), 0), billboard: { image: image, - width: 60, - height: 60, + width: 30, + height: 30, verticalOrigin: Cesium.VerticalOrigin.BOTTOM, disableDepthTestDistance: Number.POSITIVE_INFINITY, }, @@ -963,8 +965,8 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, orientation: orientation, billboard: { image: carImg, - width: 50, - height: 50, + width: 30, + height: 30, verticalOrigin: Cesium.VerticalOrigin.BOTTOM, disableDepthTestDistance: Number.POSITIVE_INFINITY, color: Cesium.Color.YELLOW.withAlpha(0.8), @@ -1153,9 +1155,9 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, // ============================== let image = carImg; - let width = 60; - let height = 60; - const carsize = device?.productId == 138 ? 40 : 60; + let width = 30; + let height = 30; + const carsize = device?.productId == 138 ? 30 : 30; @@ -1180,14 +1182,14 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, device?.type === "plane" || device?.type === "drone" || device?.type === "drone-inspect" - ? 70 + ? 30 : carsize; height = device?.type === "plane" || device?.type === "drone" || device?.type === "drone-inspect" - ? 70 + ? 30 : carsize; } @@ -1554,9 +1556,9 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, const dx = last.lon - lon; const dy = last.lat - lat; const dist = Math.sqrt(dx * dx + dy * dy); - if (dist < 0.0000001) { - shouldAdd = false; - } + //if (dist < 0.0000001) { + // shouldAdd = false; + //} } if (shouldAdd && drawRealTime) { @@ -1585,14 +1587,18 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, // 无人机图标 const img = realtimeType === 'plane' || realtimeType === 'drone' ? planeImg : carImg; - const imgWidth = 70; - const imgHeight = 70; + const imgWidth = 30; + const imgHeight = 30; // 如果有航向角,设置旋转 let rotation = 0; + if (realtimePosition?.heading !== undefined && !isNaN(Number(realtimePosition.heading))) { let headingDeg = Number(realtimePosition.heading); rotation = Cesium.Math.toRadians(headingDeg); + + + } //rotation = Cesium.Math.toRadians(-3.17); @@ -1707,16 +1713,17 @@ const CesiumMap = React.forwardRef(({ ifClear, ifClearPlanLine, ifClearNavLine, // 机器人图标 const img = carImg; - const imgWidth = 60; - const imgHeight = 60; + const imgWidth = 30; + const imgHeight = 30; // 如果有航向角,设置旋转 let rotation = 0; + if (realtimePosition?.heading !== undefined && !isNaN(Number(realtimePosition.heading))) { let headingDeg = Number(realtimePosition.heading); + rotation = Cesium.Math.toRadians(headingDeg); } - if (!realtimeCarEntityRef.current) { realtimeCarEntityRef.current = viewer.entities.add({ position: position, diff --git a/src/components/SystemSetting/ErrorManagement.tsx b/src/components/SystemSetting/ErrorManagement.tsx index 0a65486..c5a44e4 100644 --- a/src/components/SystemSetting/ErrorManagement.tsx +++ b/src/components/SystemSetting/ErrorManagement.tsx @@ -438,6 +438,7 @@ export default function ErrorManagement() { ]; return ( +
@@ -506,7 +507,7 @@ export default function ErrorManagement() { columns={columns} dataSource={errorList} loading={loading} - scroll={{ x: 1400, y: 'calc(100vh - 380px)' }} + scroll={{ x: 1400, y: 1200 }} pagination={{ current: params.pageNum, pageSize: params.pageSize, diff --git a/src/components/devices/DeviceOverviewPage.tsx b/src/components/devices/DeviceOverviewPage.tsx index e67a4c1..e5a1848 100644 --- a/src/components/devices/DeviceOverviewPage.tsx +++ b/src/components/devices/DeviceOverviewPage.tsx @@ -17,6 +17,7 @@ import { } from '@ant-design/icons'; + import DroneLivePlayer from '../VolcRtcPlayer.jsx'; import DroneVideoPlayer from './DroneVideoPlayer'; import AgoraTextTest from '../AgoraRtc.tsx'; @@ -642,7 +643,7 @@ export default function DeviceOverviewPage({ onViewStatus, selectedSn, onDeviceS title: '操作', key: 'action', width: 80, - fixed: 'right', + //fixed: 'right', render: (_, record) => ( {/* 编辑按钮绑定弹窗 */} @@ -655,7 +656,7 @@ export default function DeviceOverviewPage({ onViewStatus, selectedSn, onDeviceS