Skip to content

Commit ca43e26

Browse files
committed
refac: 반복횟수 증가 및 우회 거리 증가
1 parent 55a7a5e commit ca43e26

2 files changed

Lines changed: 14 additions & 8 deletions

File tree

src/main/java/com/capstone25/WildFirePrediction/service/TmapRouteService.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class TmapRouteService {
4343
private final RestTemplate restTemplate;
4444
private final AIPredictedCellRepository aiPredictedCellRepository;
4545

46-
private static final int MAX_BYPASS_ATTEMPTS = 3;
46+
private static final int MAX_BYPASS_ATTEMPTS = 5;
4747

4848

4949
// 안전 경로 조회
@@ -70,9 +70,10 @@ public RouteResponse getSafeRoute(RouteRequest request) {
7070

7171
// 4. 우회 경로 반환
7272
RouteResponse safeRoute = findBypassRoute(request, originalRoute, dangerCells);
73+
boolean finalSafe = GeoUtils.isRouteSafe(safeRoute.getPath(), dangerCells);
7374
log.info("최종 경로 - 거리: {}m, 시간: {}분, 안전여부: {}",
7475
safeRoute.getTotalDistance(), safeRoute.getTotalTime(),
75-
safeRoute != originalRoute ? "✅" : "⚠️");
76+
finalSafe ? "✅" : "⚠️");
7677
return safeRoute;
7778
}
7879

@@ -137,16 +138,20 @@ private RouteResponse findBypassRoute(
137138
rep.getLongitude(), rep.getLatitude());
138139
});
139140

140-
// 3. 반복 우회 시도 (최대 3회)
141+
// 3. 반복 우회 시도 (최대 3회, 우회거리 증가)
141142
for (int iteration = 1; iteration <= MAX_BYPASS_ATTEMPTS; iteration++) {
142-
log.info("=== 우회 반복 {}/3 ===", iteration);
143+
log.info("=== 우회 반복 {}/{} ===", iteration, MAX_BYPASS_ATTEMPTS);
144+
145+
// 반복 횟수에 따라 우회 거리(km) 점점 증가
146+
double distanceKm = 0.5 * iteration;
143147

144148
// 4. passList 생성 (최대 5개 경유지)
145149
String passList = GeoUtils.generatePassList(
146150
groups,
147151
request.getStartLon(), request.getStartLat(),
148152
request.getEndLon(), request.getEndLat(),
149-
dangerCells
153+
dangerCells,
154+
distanceKm
150155
);
151156

152157
log.info("생성된 passList: {}", passList);
@@ -179,7 +184,7 @@ private RouteResponse findBypassRoute(
179184
}
180185
}
181186

182-
log.error("❌ 모든 우회 시도 실패 (3회) - 위험 경로 반환");
187+
log.error("❌ 모든 우회 시도 실패 ({}회) - 위험 경로 반환", MAX_BYPASS_ATTEMPTS);
183188
return originalRoute;
184189
}
185190

src/main/java/com/capstone25/WildFirePrediction/util/GeoUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ public static String generatePassList(
140140
List<CollisionGroup> groups,
141141
double startLon, double startLat,
142142
double endLon, double endLat,
143-
List<AIPredictedCell> dangerCells
143+
List<AIPredictedCell> dangerCells,
144+
double distanceKm
144145
) {
145146
if (groups.isEmpty()) return null;
146147

@@ -173,7 +174,7 @@ public static String generatePassList(
173174
double[] bypassPoint = GeoUtils.calculateSafeBypassPoint(
174175
cell,
175176
direction,
176-
0.5, // 500m
177+
distanceKm,
177178
dangerCells // 주변 모든 위험 셀 리스트
178179
);
179180

0 commit comments

Comments
 (0)