|
|
|
@ -116,13 +116,15 @@ public class BasLaancService {
|
|
|
|
|
boolean isArcrftWeight = rq.getArcrftList().stream().anyMatch(arcrft -> arcrft.getArcrftWghtCd() != ArcrftWghtCd.W25KG_GO && arcrft.getArcrftWghtCd() != ArcrftWghtCd.W25KG_GO_TEST); |
|
|
|
|
rs.setArcrftWeight(isArcrftWeight); |
|
|
|
|
|
|
|
|
|
// 판단구역 - 공역과 겹칠 경우, 비행가능여부
|
|
|
|
|
/* 비행구역 및 기체 중복여부 확인 안하기로 함. |
|
|
|
|
// 비행구역 중복여부, 기체 중복여부
|
|
|
|
|
BasLaancValidatedRs validationPlanAirspaceRs = this.validationPlanAreaAndArcrft(rq); |
|
|
|
|
rs.setPlanAreaDuplicatd(validationPlanAirspaceRs.isPlanAreaDuplicatd()); |
|
|
|
|
rs.setArcrftDuplicated(validationPlanAirspaceRs.isArcrftDuplicated()); |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 비행구역 중복여부, 기체 중복여부
|
|
|
|
|
// 판단구역 - 공역과 겹칠 경우, 비행가능여부
|
|
|
|
|
BasLaancValidatedRs validationPlanDbRs = this.validationPlanAirspace(rq); |
|
|
|
|
rs.setEvaluatedTargetArea(validationPlanDbRs.isEvaluatedTargetArea()); |
|
|
|
|
rs.setFlightArea(validationPlanDbRs.isFlightArea()); |
|
|
|
@ -139,9 +141,11 @@ public class BasLaancService {
|
|
|
|
|
|
|
|
|
|
// BasLaancValidatedRs validatedAirspaceRs = this.validationPlanAirspace(rq);
|
|
|
|
|
|
|
|
|
|
/* 비행구역 및 기체 중복여부 확인 안하기로 함. |
|
|
|
|
BasLaancValidatedRs validatedDbRs = this.validationPlanAreaAndArcrft(rq); |
|
|
|
|
basLaancValidatedRs.setPlanAreaDuplicatd(validatedDbRs.isPlanAreaDuplicatd()); |
|
|
|
|
basLaancValidatedRs.setArcrftDuplicated(validatedDbRs.isArcrftDuplicated()); |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
// BasLaancMapper.MAPPER.merge(basLaancValidatedRs, validatedRs);
|
|
|
|
|
// LAANC가 검증된것들만 DB저장
|
|
|
|
@ -324,6 +328,7 @@ public class BasLaancService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// LAANC 검증
|
|
|
|
|
/* |
|
|
|
|
private BasLaancValidatedRs validationPlanAreaAndArcrft(BasLaancPlanRq rq) { |
|
|
|
|
|
|
|
|
|
// 초기화
|
|
|
|
@ -419,51 +424,11 @@ public class BasLaancService {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// // 공역 중복 확인
|
|
|
|
|
// for (BasLaancAreaModel basLaancAreaModel : rq.getAreaList()) {
|
|
|
|
|
// List<Coordinate> rqCoord = new ArrayList<>();
|
|
|
|
|
// List<Coordinate> rqCoordBufferList = new ArrayList<>();
|
|
|
|
|
//
|
|
|
|
|
// //rq로 들어온 좌표로 버퍼좌표 생성
|
|
|
|
|
// for (BasLaancAreaCoordModel basLaancAreaCoordModel : basLaancAreaModel.getCoordList()) {
|
|
|
|
|
// Coordinate coords = new Coordinate(basLaancAreaCoordModel.getLon(), basLaancAreaCoordModel.getLat());
|
|
|
|
|
// rqCoord.add(coords);
|
|
|
|
|
// }
|
|
|
|
|
// if ("LINE".equals(basLaancAreaModel.getAreaType())) {
|
|
|
|
|
// List<Coordinate> trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181");
|
|
|
|
|
// List<Coordinate> bufferList = areaUtils.buffer(trans, basLaancAreaModel.getBufferZone());
|
|
|
|
|
// rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326");
|
|
|
|
|
// } else if ("POLYGON".equals(basLaancAreaModel.getAreaType())) {
|
|
|
|
|
// rqCoordBufferList.addAll(rqCoord);
|
|
|
|
|
// } else if ("CIRCLE".equals(basLaancAreaModel.getAreaType())) {
|
|
|
|
|
// rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), basLaancAreaModel.getBufferZone());
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// AirspaceUtils airspaceUtils = AirspaceUtils.getInstance();
|
|
|
|
|
// Geometry rqGeometry = airspaceUtils.createGeometryByCoordinate(rqCoordBufferList);
|
|
|
|
|
// Integer fltElev = basLaancAreaModel.getFltElev() != null ? Integer.valueOf(basLaancAreaModel.getFltElev()) : 0;
|
|
|
|
|
// AirspaceUtils.FeatureInfo featureInfo = new AirspaceUtils.FeatureInfo(null, null, 0, fltElev, rqGeometry);
|
|
|
|
|
//
|
|
|
|
|
// // 평가 가능 지역 판단
|
|
|
|
|
// boolean duplicatedAirspace = airspaceUtils.isDuplicatedAirspace(featureInfo);
|
|
|
|
|
// rs.setEvaluatedTargetArea(duplicatedAirspace);
|
|
|
|
|
//
|
|
|
|
|
// // 비행 가능 지역 판단
|
|
|
|
|
//// if (duplicatedAirspace) {
|
|
|
|
|
//// boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo);
|
|
|
|
|
//// rs.setFlightAreaYn(validLaancAirspace ? "Y" : "N");
|
|
|
|
|
//// } else {
|
|
|
|
|
//// rs.setFlightAreaYn("N");
|
|
|
|
|
//// }
|
|
|
|
|
//
|
|
|
|
|
// // 비행 가능 지역 판단
|
|
|
|
|
// boolean validLaancAirspace = airspaceUtils.isValidLaancAirspace(featureInfo);
|
|
|
|
|
// rs.setFlightArea(validLaancAirspace);
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
return rs; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
private BasLaancValidatedRs validationPlanAirspace(BasLaancPlanRq rq) { |
|
|
|
|
|
|
|
|
|
// 초기화
|
|
|
|
|