diff --git a/B05_Profile/B05_Profile_Engine_RidgeValley.py b/B05_Profile/B05_Profile_Engine_RidgeValley.py index 216d3848..c44bed63 100644 --- a/B05_Profile/B05_Profile_Engine_RidgeValley.py +++ b/B05_Profile/B05_Profile_Engine_RidgeValley.py @@ -529,7 +529,8 @@ def solve_ridge_valley_route( bp = points_data.get("bp") ep = points_data.get("ep") - cp_list = sorted(points_data.get("cp", []), key=lambda x: x.get("order", 0)) + # 번호가 비어 오는 경유점 처리는 `solve_optimal_route`와 같다 — None 정렬로 터지지 않게. + cp_list = sorted(points_data.get("cp", []), key=lambda item: item.get("order") or 0) ap_list = points_data.get("ap", []) fp_list = points_data.get("fp", []) if not bp or not ep: diff --git a/B05_Profile/B05_Profile_Engine_Solver.py b/B05_Profile/B05_Profile_Engine_Solver.py index 032811de..25f113d8 100644 --- a/B05_Profile/B05_Profile_Engine_Solver.py +++ b/B05_Profile/B05_Profile_Engine_Solver.py @@ -300,7 +300,9 @@ def solve_optimal_route( bp = points_data.get("bp") ep = points_data.get("ep") - cp_list = sorted(points_data.get("cp", []), key=lambda x: x.get("order", 0)) + # 경유점 번호는 비어 올 수 있다(화면에서 막 찍은 점은 아직 번호가 없다). `None`끼리는 + # 비교가 안 돼 정렬이 터지므로 0으로 눕힌다 — 정렬이 안정적이라 받은 순서가 유지된다. + cp_list = sorted(points_data.get("cp", []), key=lambda item: item.get("order") or 0) ap_list = points_data.get("ap", []) fp_list = points_data.get("fp", [])