| | |
| | | } |
| | | |
| | | List<Map<String,Object>> result = new ArrayList(); |
| | | for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ |
| | | Map<String,Object> map = new HashMap(); |
| | | 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() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//有高程 |
| | | if(ardTowers.getAltitude() > 5){//有高程 |
| | | for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ |
| | | Map<String,Object> map = new HashMap(); |
| | | double distance_Target = RealDistance(ardCameras.getLongitude(),ardCameras.getLatitude(),ardAlarmpointsWell.getLongitude(), ardAlarmpointsWell.getLatitude()); |
| | | |
| | | Angle_A = Angle_A - (p - fHorFieldAngle/2);//视场角内方位 |
| | | Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//视场角内俯仰 |
| | | if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.92)){//最上,最左,最右去掉 |
| | | 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); |
| | | 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() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//有高程 |
| | | |
| | | Angle_A = Angle_A - (p - fHorFieldAngle/2);//视场角内方位 |
| | | Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//视场角内俯仰 |
| | | if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.92)){//最上,最左,最右去掉 |
| | | 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); |
| | | } |
| | | } |
| | | }else{//无高程 |
| | | for(ArdAlarmpointsWell ardAlarmpointsWell : innerList){ |
| | | Map<String,Object> map = new HashMap(); |
| | | 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() + ardTowers.getAltitude() - ardAlarmpointsWell.getAltitude()) / distance_Target) * 180 / Math.PI;//有高程 |
| | | |
| | | Angle_A = Angle_A - (p - fHorFieldAngle/2);//视场角内方位 |
| | | Angle_E = Angle_E - (360 - t - fVerFieldAngle/2);//视场角内俯仰 |
| | | if(!(Angle_E/fVerFieldAngle < 0.1 || Angle_A/fHorFieldAngle < 0.08 || Angle_A/fHorFieldAngle > 0.92)){//最上,最左,最右去掉 |
| | | 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; |
| | | } |
| | | |