From c966258d903d858c2133d0db1d1b039024bafe46 Mon Sep 17 00:00:00 2001 From: songhyeonseong Date: Fri, 31 Jan 2025 17:09:10 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[UNI-75]=20refactor=20:=20=EA=B8=B8?= =?UTF-8?q?=EC=B0=BE=EA=B8=B0=20=EA=B2=B0=EA=B3=BC=EC=9D=98=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EC=A2=8C=ED=91=9C=EA=B0=80=20=EC=88=9C=EC=84=9C?= =?UTF-8?q?=EB=8C=80=EB=A1=9C=20=EC=A0=95=EB=A0=AC=EB=90=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - (10 20, 20 30) (40 30, 20 30) 형태에서 (10 20, 20 30) (20 30, 40 30) 형태로 --- .../uniro_backend/route/dto/RouteInfoDTO.java | 7 ++++--- .../route/service/RouteCalculationService.java | 12 ++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteInfoDTO.java b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteInfoDTO.java index fdaa155..505e8c1 100644 --- a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteInfoDTO.java +++ b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteInfoDTO.java @@ -1,5 +1,6 @@ package com.softeer5.uniro_backend.route.dto; +import com.softeer5.uniro_backend.node.entity.Node; import com.softeer5.uniro_backend.route.entity.CautionType; import com.softeer5.uniro_backend.route.entity.Route; import io.swagger.v3.oas.annotations.media.Schema; @@ -22,10 +23,10 @@ public class RouteInfoDTO { @Schema(description = "위험 요소 타입 리스트", example = "[\"SLOPE\", \"STAIRS\"]") private final Set cautionFactors; - public static RouteInfoDTO of(Route route) { + public static RouteInfoDTO of(Route route, Node node1, Node node2) { return new RouteInfoDTO(route.getId(), - route.getNode1().getXY(), - route.getNode2().getXY(), + node1.getXY(), + node2.getXY(), route.getCautionFactors()); } } diff --git a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java index eb5428d..d13239f 100644 --- a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java +++ b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java @@ -68,7 +68,7 @@ public FastestRouteResDTO calculateFastestRoute(Long univId, Long startNodeId, L double totalDistance = 0.0; List routeInfoDTOS = new ArrayList<>(); - + Node currentNode = startNode; // 외부 변수를 수정해야하기 때문에 for-loop문 사용 for (Route route : shortestRoutes) { totalCost += route.getCost(); @@ -78,7 +78,15 @@ public FastestRouteResDTO calculateFastestRoute(Long univId, Long startNodeId, L hasCaution = true; } - routeInfoDTOS.add(RouteInfoDTO.of(route)); + Node firstNode = route.getNode1(); + Node secondNode = route.getNode2(); + if(currentNode.getId().equals(secondNode.getId())){ + Node temp = firstNode; + firstNode = secondNode; + secondNode = temp; + } + + routeInfoDTOS.add(RouteInfoDTO.of(route, firstNode, secondNode)); } List details = getRouteDetail(startNode, endNode, shortestRoutes); From c0a0037a3e9cf4ef9ca3fff21f9b7fcc9ae83a8e Mon Sep 17 00:00:00 2001 From: songhyeonseong Date: Fri, 31 Jan 2025 20:12:36 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[UNI-74],[UNI-76]=20refactor=20-=20FE?= =?UTF-8?q?=EC=99=80=EC=9D=98=20=ED=98=91=EC=9D=98=EB=A1=9C=20=EA=B8=B8=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=EC=A0=95=EB=B3=B4=EC=97=90=20=EA=B0=88?= =?UTF-8?q?=EB=A6=BC=EA=B8=B8=20=EB=85=B8=EB=93=9C=EC=A2=8C=ED=91=9C=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8=ED=95=98=EB=8A=94=20=ED=98=95=ED=83=9C?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20-=20=EC=B0=A8=EB=9F=89=20?= =?UTF-8?q?=EB=82=B4=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=EC=9D=B4=20?= =?UTF-8?q?=EC=95=84=EB=8B=88=EB=9D=BC=20=EB=8F=84=EB=B3=B4=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=EC=A0=95=EB=B3=B4=20=ED=98=95=ED=83=9C=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../route/dto/RouteDetailDTO.java | 8 ++++++-- .../service/RouteCalculationService.java | 20 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteDetailDTO.java b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteDetailDTO.java index c63fec7..64866e5 100644 --- a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteDetailDTO.java +++ b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/dto/RouteDetailDTO.java @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; +import java.util.Map; + @Getter @RequiredArgsConstructor(access = AccessLevel.PRIVATE) public class RouteDetailDTO { @@ -13,8 +15,10 @@ public class RouteDetailDTO { private final double dist; @Schema(description = "좌회전, 우회전, 위험요소 등 정보", example = "RIGHT") private final DirectionType directionType; + @Schema(description = "상세 경로의 좌표", example = "{\"lag\": 127.123456, \"lat\": 37.123456}") + private final Map coordinates; - public static RouteDetailDTO of(double dist, DirectionType directionType) { - return new RouteDetailDTO(dist, directionType); + public static RouteDetailDTO of(double dist, DirectionType directionType, Map coordinates) { + return new RouteDetailDTO(dist, directionType, coordinates); } } diff --git a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java index d13239f..7063547 100644 --- a/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java +++ b/uniro_backend/src/main/java/com/softeer5/uniro_backend/route/service/RouteCalculationService.java @@ -199,6 +199,8 @@ private List getRouteDetail(Node startNode, Node endNode, List details = new ArrayList<>(); double accumulatedDistance = 0.0; Node now = startNode; + Map checkPointNodeCoordinates = startNode.getXY(); + DirectionType checkPointType = DirectionType.STRAIGHT; // 길찾기 결과 상세정보 정리 for(int i=0;i getRouteDetail(Node startNode, Node endNode, List getRouteDetail(Node startNode, Node endNode, List getRouteDetail(Node startNode, Node endNode, List getCenter(Node n1, Node n2){ + return Map.of("lat", (n1.getCoordinates().getY() + n2.getCoordinates().getY())/2 + , "lng", (n1.getCoordinates().getX() + n2.getCoordinates().getX())/2); + } + }