diff --git a/pav-server/src/main/java/com/palnet/biz/api/comn/elev/controller/ComnElevController.java b/pav-server/src/main/java/com/palnet/biz/api/comn/elev/controller/ComnElevController.java index 765c57d..1e2ceb8 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/comn/elev/controller/ComnElevController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/comn/elev/controller/ComnElevController.java @@ -32,6 +32,11 @@ public class ComnElevController { private final ComnElevService comnElevService; + /** + * + * @param rq + * @return + */ @PostMapping(value = "/ground") @ApiOperation(value = "지표면 고도 가져오기") @Tag(name = "공통 API", description = "공통 API") @@ -39,9 +44,17 @@ public class ComnElevController { List rs = null; try { log.debug(">>> rq : {}", rq); - rs = comnElevService.getGroundElev(rq); + rs = comnElevService.getGroundElev(rq); // 지표면 고도 가져오는 기능 } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ Map resultMap = new HashMap<>(); log.error("IGNORE : ", e); resultMap.put("result", false); @@ -49,6 +62,13 @@ public class ComnElevController { resultMap.put("errorMessage", e.getMessage()); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNORE : ", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); @@ -57,6 +77,11 @@ public class ComnElevController { return ResponseEntity.ok().body(new SuccessResponse<>(rs)); } + /** + * MSL[해발고도]를 AGL[지표면고도]로 변환하는 기능. + * @param rq + * @return + */ @PostMapping(value = "/to/agl") @ApiOperation(value = "msl을 agl로 변환") @Tag(name = "공통 API", description = "공통 API") @@ -64,9 +89,17 @@ public class ComnElevController { List rs = null; try { log.debug(">>> rq : {}", rq); - rs = comnElevService.convertMslToAgl(rq); + rs = comnElevService.convertMslToAgl(rq); // msl 기준 고도 > agl 기준 고도 변환하는 기능 } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ Map resultMap = new HashMap<>(); log.error("IGNORE : ", e); resultMap.put("result", false); @@ -74,6 +107,13 @@ public class ComnElevController { resultMap.put("errorMessage", e.getMessage()); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNORE : ", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); @@ -82,6 +122,11 @@ public class ComnElevController { return ResponseEntity.ok().body(new SuccessResponse<>(rs)); } + /** + * AGL[지표면고도]를 MSL[해발고도]로 변환하는 기능. + * @param rq + * @return + */ @PostMapping(value = "/to/msl") @ApiOperation(value = "agl을 msl로 변환") @Tag(name = "공통 API", description = "공통 API") @@ -89,9 +134,17 @@ public class ComnElevController { List rs = null; try { log.debug(">>> rq : {}", rq); - rs = comnElevService.convertAglToMsl(rq); + rs = comnElevService.convertAglToMsl(rq); // agl 기준 고도 > msl 기준 고도 변환하는 기능 } catch (CustomException e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * CustomException은 개발자가 "의도적으로" 낸 예외처리, + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ Map resultMap = new HashMap<>(); log.error("IGNORE : ", e); resultMap.put("result", false); @@ -99,6 +152,13 @@ public class ComnElevController { resultMap.put("errorMessage", e.getMessage()); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); } catch (Exception e) { + /** + * try{ + ... + } + * try 영역 안 코드들중 문제가 생기면 오는 곳. + * log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌 + */ log.error("IGNORE : ", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(new ErrorResponse("Server Error", "-1")); diff --git a/pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java b/pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java index 697bd31..6b03ab2 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java @@ -17,12 +17,16 @@ import java.util.stream.Collectors; @Service public class ComnElevService { - // 지표면 고도 가져오기 + /** + * 지표면 고도 가져오는 기능. + * @param rq + * @return + */ public List getGroundElev(List rq) { DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); List rs = rq.stream().map(elev -> { Coordinate coord = new Coordinate(elev.getLon(), elev.getLat()); - Double groundElevation = demUtils.getGroundElevation(coord); + Double groundElevation = demUtils.getGroundElevation(coord); // 좌표로 고도값을 구하는 기능.[좌표계는 EPSG:4326으로 해야합니다] return ComnElevRs.builder() .elevType("ground") .lat(elev.getLat()) @@ -33,7 +37,11 @@ public class ComnElevService { return rs; } - // msl 기준 고도 > agl 기준 고도 변환 + /** + * msl 기준 고도 > agl 기준 고도 변환하는 기능. + * @param rq + * @return + */ public List convertMslToAgl(List rq) { DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); List rs = rq.stream().map(elev -> { @@ -52,7 +60,11 @@ public class ComnElevService { return rs; } - // agl 기준 고도 > msl 기준 고도 변환 + /** + * agl 기준 고도 > msl 기준 고도 변환하는 기능. + * @param rq + * @return + */ public List convertAglToMsl(List rq) { DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); List rs = rq.stream().map(elev -> { diff --git a/pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java b/pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java index 4f816a2..a2d5e49 100644 --- a/pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java +++ b/pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java @@ -86,6 +86,12 @@ public class DigitalElevationModelUtils { this.dems = demList; } + /** + * 좌표로 고도값을 구하는 기능. + * 좌표계는 EPSG:4326으로 해야합니다. + * @param coord + * @return + */ public Double getGroundElevation(Coordinate coord) { if (this.dems == null || dems.isEmpty()) return null;