From 49bedcce2ac42fa34da012ee3fc8e9230886064a Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期五, 12 七月 2024 15:28:24 +0800
Subject: [PATCH] 优化:流媒体

---
 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
index f379d10..eb62b1c 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -18,19 +18,20 @@
 import com.ruoyi.device.camera.factory.CameraSDKFactory;
 import com.ruoyi.device.noguidezone.domain.ArdCameraNoGuideZone;
 import com.ruoyi.device.noguidezone.service.IArdCameraNoGuideZoneService;
+import com.ruoyi.device.terrain.domain.ArdTerrainMark;
+import com.ruoyi.device.terrain.service.IArdTerrainMarkService;
 import com.ruoyi.utils.gis.GisUtil;
 import com.ruoyi.utils.gis.Point;
 import com.ruoyi.utils.sdk.common.GlobalVariable;
 import com.ruoyi.utils.tools.ArdTool;
-import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -52,6 +53,8 @@
     private IArdAlarmpointsWellService ardAlarmpointsWellService;
     @Resource
     private IArdCameraNoGuideZoneService ardCameraNoGuideZoneService;
+    @Resource
+    private IArdTerrainMarkService ardTerrainMarkService;
 
     /**
      * 鍚姩绾跨▼鏂规硶锛岀敤浜庢墽琛屽垵濮嬪寲鐧诲綍鐩告満鐨勯�昏緫
@@ -508,6 +511,37 @@
         }
     }
 
+    /**
+     * @return
+     * @Author 鍒樿嫃涔�
+     * @Description 淇淇话鍊硷紙鏍规嵁鐩告満ID鑾峰彇500绫宠寖鍥村唴鐨勫湴褰㈠弬鏁伴泦鍚堬紝璁$畻骞冲潎鍊煎姞涓奣鍊硷級
+     * @Date 2024/6/22 11:16
+     * @Param
+     */
+    @Override
+    public Double correctPitch(CameraCmd cmd) {
+        Double pitchAngle = 0.0;
+        try {
+            double[] targetPositions = cmd.getTargetPosition();
+            ArdTerrainMark ardTerrainMark = new ArdTerrainMark();
+            ardTerrainMark.setCameraId(cmd.getCameraId());
+            List<ArdTerrainMark> ardTerrainMarks = ardTerrainMarkService.selectArdTerrainMarkList(ardTerrainMark);
+            //杩囨护500绫宠寖鍥村唴鐨勯泦鍚�
+            ardTerrainMarks = ardTerrainMarks.stream().filter(n -> GisUtil.getDistance(targetPositions, new double[]{n.getLongitude(), n.getLatitude(), n.getAltitude()}) <= 500).collect(Collectors.toList());
+            //璁$畻T骞冲潎鍊�
+            OptionalDouble averageT = ardTerrainMarks.stream().mapToDouble(ArdTerrainMark::getT).average();
+            // 杈撳嚭
+            if (averageT.isPresent()) {
+                pitchAngle = averageT.getAsDouble();
+                log.debug("淇淇话鍊硷細" + pitchAngle);
+            }
+        } catch (Exception ex) {
+            log.error("淇淇话鍊煎紓甯革細" + ex.getMessage());
+
+        }
+        return pitchAngle;
+    }
+
     //寮曞鎸囧悜浜�
     @Override
     public AjaxResult guideTargetWell(CameraCmd cmd) {
@@ -552,17 +586,17 @@
                     case 1:
                         if (ardWellGuideCamera.getP1() != null) {
                             ptzMap = new HashMap<>();
-                            ptzMap.put("p", ardWellGuideCamera.getP1());
-                            ptzMap.put("t", ardWellGuideCamera.getT1());
-                            ptzMap.put("z", ardWellGuideCamera.getZ1());
+                            ptzMap.put("p" , ardWellGuideCamera.getP1());
+                            ptzMap.put("t" , ardWellGuideCamera.getT1());
+                            ptzMap.put("z" , ardWellGuideCamera.getZ1());
                         }
                         break;
                     case 2:
                         if (ardWellGuideCamera.getP2() != null) {
                             ptzMap = new HashMap<>();
-                            ptzMap.put("p", ardWellGuideCamera.getP2());
-                            ptzMap.put("t", ardWellGuideCamera.getT2());
-                            ptzMap.put("z", ardWellGuideCamera.getZ2());
+                            ptzMap.put("p" , ardWellGuideCamera.getP2());
+                            ptzMap.put("t" , ardWellGuideCamera.getT2());
+                            ptzMap.put("z" , ardWellGuideCamera.getZ2());
                         }
                         break;
 
@@ -590,9 +624,9 @@
         }
         //鎸変簳鍧愭爣寮�濮嬪紩瀵�
         if (!guideTargetPosition(cmd).get("code").equals(200)) {
-            return AjaxResult.warn("浜曞潗鏍囧紩瀵煎け璐�", "cameraId:" + cameraId);
+            return AjaxResult.warn("浜曞潗鏍囧紩瀵煎け璐�" , "cameraId:" + cameraId);
         }
-        return AjaxResult.success("浜曞潗鏍囧紩瀵兼垚鍔�", "cameraId:" + cameraId);
+        return AjaxResult.success("浜曞潗鏍囧紩瀵兼垚鍔�" , "cameraId:" + cameraId);
 
     }
 

--
Gitblit v1.9.3