Browse Source

comn/elev 패키지 주석추가

pull/18/head
lkd9125(이경도) 9 months ago
parent
commit
f64debca81
  1. 66
      pav-server/src/main/java/com/palnet/biz/api/comn/elev/controller/ComnElevController.java
  2. 20
      pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java
  3. 6
      pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java

66
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; private final ComnElevService comnElevService;
/**
*
* @param rq
* @return
*/
@PostMapping(value = "/ground") @PostMapping(value = "/ground")
@ApiOperation(value = "지표면 고도 가져오기") @ApiOperation(value = "지표면 고도 가져오기")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@ -39,9 +44,17 @@ public class ComnElevController {
List<ComnElevRs> rs = null; List<ComnElevRs> rs = null;
try { try {
log.debug(">>> rq : {}", rq); log.debug(">>> rq : {}", rq);
rs = comnElevService.getGroundElev(rq); rs = comnElevService.getGroundElev(rq); // 지표면 고도 가져오는 기능
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -49,6 +62,13 @@ public class ComnElevController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -57,6 +77,11 @@ public class ComnElevController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
/**
* MSL[해발고도] AGL[지표면고도] 변환하는 기능.
* @param rq
* @return
*/
@PostMapping(value = "/to/agl") @PostMapping(value = "/to/agl")
@ApiOperation(value = "msl을 agl로 변환") @ApiOperation(value = "msl을 agl로 변환")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@ -64,9 +89,17 @@ public class ComnElevController {
List<ComnElevRs> rs = null; List<ComnElevRs> rs = null;
try { try {
log.debug(">>> rq : {}", rq); log.debug(">>> rq : {}", rq);
rs = comnElevService.convertMslToAgl(rq); rs = comnElevService.convertMslToAgl(rq); // msl 기준 고도 > agl 기준 고도 변환하는 기능
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -74,6 +107,13 @@ public class ComnElevController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -82,6 +122,11 @@ public class ComnElevController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
/**
* AGL[지표면고도] MSL[해발고도] 변환하는 기능.
* @param rq
* @return
*/
@PostMapping(value = "/to/msl") @PostMapping(value = "/to/msl")
@ApiOperation(value = "agl을 msl로 변환") @ApiOperation(value = "agl을 msl로 변환")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@ -89,9 +134,17 @@ public class ComnElevController {
List<ComnElevRs> rs = null; List<ComnElevRs> rs = null;
try { try {
log.debug(">>> rq : {}", rq); log.debug(">>> rq : {}", rq);
rs = comnElevService.convertAglToMsl(rq); rs = comnElevService.convertAglToMsl(rq); // agl 기준 고도 > msl 기준 고도 변환하는 기능
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -99,6 +152,13 @@ public class ComnElevController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));

20
pav-server/src/main/java/com/palnet/biz/api/comn/elev/service/ComnElevService.java

@ -17,12 +17,16 @@ import java.util.stream.Collectors;
@Service @Service
public class ComnElevService { public class ComnElevService {
// 지표면 고도 가져오기 /**
* 지표면 고도 가져오는 기능.
* @param rq
* @return
*/
public List<ComnElevRs> getGroundElev(List<ComnGroundElevRq> rq) { public List<ComnElevRs> getGroundElev(List<ComnGroundElevRq> rq) {
DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance();
List<ComnElevRs> rs = rq.stream().map(elev -> { List<ComnElevRs> rs = rq.stream().map(elev -> {
Coordinate coord = new Coordinate(elev.getLon(), elev.getLat()); Coordinate coord = new Coordinate(elev.getLon(), elev.getLat());
Double groundElevation = demUtils.getGroundElevation(coord); Double groundElevation = demUtils.getGroundElevation(coord); // 좌표로 고도값을 구하는 기능.[좌표계는 EPSG:4326으로 해야합니다]
return ComnElevRs.builder() return ComnElevRs.builder()
.elevType("ground") .elevType("ground")
.lat(elev.getLat()) .lat(elev.getLat())
@ -33,7 +37,11 @@ public class ComnElevService {
return rs; return rs;
} }
// msl 기준 고도 > agl 기준 고도 변환 /**
* msl 기준 고도 > agl 기준 고도 변환하는 기능.
* @param rq
* @return
*/
public List<ComnElevRs> convertMslToAgl(List<ComnElevRq> rq) { public List<ComnElevRs> convertMslToAgl(List<ComnElevRq> rq) {
DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance();
List<ComnElevRs> rs = rq.stream().map(elev -> { List<ComnElevRs> rs = rq.stream().map(elev -> {
@ -52,7 +60,11 @@ public class ComnElevService {
return rs; return rs;
} }
// agl 기준 고도 > msl 기준 고도 변환 /**
* agl 기준 고도 > msl 기준 고도 변환하는 기능.
* @param rq
* @return
*/
public List<ComnElevRs> convertAglToMsl(List<ComnElevRq> rq) { public List<ComnElevRs> convertAglToMsl(List<ComnElevRq> rq) {
DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance(); DigitalElevationModelUtils demUtils = DigitalElevationModelUtils.getInstance();
List<ComnElevRs> rs = rq.stream().map(elev -> { List<ComnElevRs> rs = rq.stream().map(elev -> {

6
pav-server/src/main/java/com/palnet/comn/utils/DigitalElevationModelUtils.java

@ -86,6 +86,12 @@ public class DigitalElevationModelUtils {
this.dems = demList; this.dems = demList;
} }
/**
* 좌표로 고도값을 구하는 기능.
* 좌표계는 EPSG:4326으로 해야합니다.
* @param coord
* @return
*/
public Double getGroundElevation(Coordinate coord) { public Double getGroundElevation(Coordinate coord) {
if (this.dems == null || dems.isEmpty()) return null; if (this.dems == null || dems.isEmpty()) return null;

Loading…
Cancel
Save