| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getCameraVideoLable(Long deptId, String cameraId, Double p, Double t, Double fHorFieldAngle, Double fVerFieldAngle) { |
| | | public List<Map<String, Object>> getCameraVideoLable(Long deptId, String cameraId, Float p, Float t, Float fHorFieldAngle, Float fVerFieldAngle) { |
| | | ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); |
| | | //小三角形腰 |
| | | 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); |
| | |
| | | List<Map<String,Object>> result = new ArrayList(); |
| | | for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ |
| | | Map<String,Object> map = new HashMap(); |
| | | double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLongitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); |
| | | double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); |
| | | |
| | | double Angle_A = GetAngle(ardCameras.getLongitude(),ardCameras.getLongitude(),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; |
| | | |
| | | Angle_A = Angle_A - (p - fHorFieldAngle/2);//视场角内方位 |
| | | |
| | | Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//视场角内俯仰 |
| | | |
| | | map.put("id",ardAlarmpointsWell.getId()); |
| | | map.put("wellId",ardAlarmpointsWell.getWellId()); |
| | | map.put("horFieldProportion",Angle_A/fHorFieldAngle);//横向占比 |
| | | map.put("verFieldProportion",Angle_E/fVerFieldAngle);//纵向占比 |
| | | result.add(map); |
| | | if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.08)){//最上,最左,最右去掉 |
| | | map.put("id",ardAlarmpointsWell.getId()); |
| | | map.put("wellId",ardAlarmpointsWell.getWellId()); |
| | | map.put("horFieldProportion",Angle_A/fHorFieldAngle);//横向占比 |
| | | map.put("verFieldProportion",Angle_E/fVerFieldAngle);//纵向占比 |
| | | result.add(map); |
| | | } |
| | | } |
| | | return result; |
| | | } |