zhangnaisong
2024-05-07 69c47ed6f8270ad07969de261c07aa65cde1e1c5
视频标签加入高程修改提交
已修改4个文件
23 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/tower/mapper/ArdTowersMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/device/ArdTowersMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarmpoints/well/service/impl/ArdAlarmpointsWellServiceImpl.java
@@ -28,6 +28,8 @@
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
import com.ruoyi.device.tower.domain.ArdTowers;
import com.ruoyi.device.tower.mapper.ArdTowersMapper;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.utils.data.Query;
import com.ruoyi.utils.gis.GisUtil;
@@ -57,6 +59,9 @@
    private ArdWellGuideCameraMapper ardWellGuideCameraMapper;
    @Resource
    private ArdCamerasMapper ardCamerasMapper;
    @Resource
    private ArdTowersMapper ardTowersMapper;
    @Autowired
    protected Validator validator;
@@ -846,6 +851,10 @@
    @Override
    public List<Map<String, Object>> getCameraVideoLable(Long deptId, String cameraId, Float p, Float t, Float fHorFieldAngle, Float fVerFieldAngle) {
        ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId);
        ArdTowers ardTowers = ardTowersMapper.selectArdTowersByCameraId(cameraId);
        if(ardTowers == null){
            return null;
        }
        //小三角形腰
        Double xy = Math.tan(Math.PI/2 - (Math.PI * 2 - Math.PI * t/180) - Math.PI * fVerFieldAngle/180/2)*ardCameras.getAltitude()/Math.cos(Math.PI * fHorFieldAngle/180/2);
        //大三角形腰
@@ -924,7 +933,8 @@
            double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude());
            double Angle_A = GetAngle(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude());
            double Angle_E = Math.atan((ardCameras.getAltitude() - 0) / distance_Target) * 180 / Math.PI;
            //double Angle_E = Math.atan((ardCameras.getAltitude() - 0) / distance_Target) * 180 / Math.PI;//无高程
            double Angle_E = Math.atan((ardCameras.getAltitude() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//有高程
            Angle_A = Angle_A - (p - fHorFieldAngle/2);//视场角内方位
            Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//视场角内俯仰
ard-work/src/main/java/com/ruoyi/device/tower/mapper/ArdTowersMapper.java
@@ -59,4 +59,6 @@
     * @return 结果
     */
    public int deleteArdTowersByIds(String[] ids);
    public ArdTowers selectArdTowersByCameraId(String cameraId);
}
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java
@@ -320,6 +320,9 @@
            return AjaxResult.error("俯仰角过小");
        }
        List<Map<String,Object>> result = ardAlarmpointsWellService.getCameraVideoLable(SecurityUtils.getDeptId(),cmd.getCameraId(),p,t,fHorFieldAngle,fVerFieldAngle);
        if(result == null){
            return AjaxResult.error("该光电没有挂接塔");
        }
        return AjaxResult.success(result);
    }
}
ard-work/src/main/resources/mapper/device/ArdTowersMapper.xml
@@ -160,4 +160,10 @@
            #{id}
        </foreach>
    </delete>
    <select id="selectArdTowersByCameraId" parameterType="java.lang.String" resultMap="ArdTowersResult">
        select at.* from ard_cameras ac
        inner join ard_towers at on ac.tower_id = at.id
        where ac.id = #{cameraId}
    </select>
</mapper>