From 7e49fc48065211df6bbb6b6f43fa747cdfbf4727 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期六, 23 十二月 2023 14:48:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java | 72 +++++++++++++++++++---------------- 1 files changed, 39 insertions(+), 33 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java index 65c6d73..a6e4edc 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java @@ -11,42 +11,24 @@ import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.device.camera.service.ICameraSdkService; -import com.ruoyi.device.dhsdk.service.IDhClientService; -import com.ruoyi.device.hiksdk.service.IHikClientService; + +import com.ruoyi.device.noguidezone.domain.ArdCameraNoGuideZone; +import com.ruoyi.device.noguidezone.service.IArdCameraNoGuideZoneService; +import com.ruoyi.utils.gis.GisUtil; +import com.ruoyi.utils.gis.Point; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import javax.annotation.PostConstruct; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.device.camera.domain.ArdCameras; -import com.ruoyi.device.camera.domain.CameraCmd; -import com.ruoyi.device.camera.service.IArdCamerasService; -import com.ruoyi.device.dhsdk.service.IDhClientService; -import com.ruoyi.device.hiksdk.service.IHikClientService; -import com.ruoyi.common.annotation.Anonymous; -import com.ruoyi.common.core.domain.AjaxResult; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; /** - * @Description: + * @Description: 鐩告満閫氱敤SDK鎺ュ彛 * @ClassName: CameraSdkController * @Author: 鍒樿嫃涔� * @Date: 2023骞�10鏈�14鏃�17:02:56 @@ -62,13 +44,8 @@ private ICameraSdkService cameraSdkService; @Resource private IArdCamerasService ardCamerasService; - - -// //鍒濆鐧诲綍鎵�鏈夌浉鏈� -// @PostConstruct -// public void initLoginAll() { -// cameraSdkService.loginAll(); -// } + @Autowired + private IArdCameraNoGuideZoneService ardCameraNoGuideZoneService; @RequestMapping("/preview") private String preview() { @@ -169,6 +146,7 @@ Map<String, Object> ptzMap = cameraSdkService.getPtz(cmd); return AjaxResult.success("鑾峰彇ptz", ptzMap); } + @ApiOperation("鑾峰彇PTZ鑼冨洿") @PostMapping("/getPTZScope") @Log(title = "鑾峰彇PTZ鑼冨洿", businessType = BusinessType.CONTROL) @@ -197,6 +175,34 @@ public @ResponseBody AjaxResult setTargetPosition(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); + //鎷︽埅鎵嬪姩寮曞 + ArdCameraNoGuideZone ardCameraNoGuideZone = new ArdCameraNoGuideZone(); + ardCameraNoGuideZone.setCameraId(cmd.getCameraId()); + ardCameraNoGuideZone.setEnabled("1"); + //鑾峰彇褰撳墠鐩告満鐨勭寮曞彲瑙嗗煙鍒楄〃 + List<ArdCameraNoGuideZone> ardCameraNoGuideZones = ardCameraNoGuideZoneService.selectArdCameraNoGuideZoneList(ardCameraNoGuideZone); + if (ardCameraNoGuideZones.size() > 0) { + //鑾峰彇鍒板綋鍓嶇浉鏈虹殑鍧愭爣闆嗗悎 + for(ArdCameraNoGuideZone zone:ardCameraNoGuideZones) { + String[] parts = zone.getPoi().split(","); + List<Point> pointList = new ArrayList<>(); + for (int i = 0; i < parts.length; i += 3) { + Point point = new Point(); + point.setLongitude(Double.valueOf(parts[i])); + point.setLatitude(Double.valueOf(parts[i + 1])); + pointList.add(point); + } + double lon = cmd.getTargetPosition()[0]; + double lat = cmd.getTargetPosition()[1]; + Point targetPoint = new Point(lon, lat); + //鍒ゆ柇寮曞鐩爣鏄惁鍦ㄥ潗鏍囬泦鍚堢粍鎴愮殑澶氳竟褰㈠唴 + boolean inPolygon = GisUtil.isInPolygon(targetPoint, pointList); + if(inPolygon) + { + return AjaxResult.error("寮曞鍧愭爣浣嶄簬绂佸紩鍙鍩熷唴"); + } + } + } return toAjax(cameraSdkService.guideTargetPosition(cmd)); } -- Gitblit v1.9.3