feat(B05,B06): 측점별 평면 곡선반경 산출 + 법정 최소반경 경고, 자동탐색 입구 내림
2026-09-06 사용자 확정. 자동탐색은 평면만 보고 노선을 정해 실제 판단과 맞지 않으므로 쓰지 않는다 — 버튼만 감추고 코드·API 는 남긴다. 대신 법정 평면 기준을 **경고**로 낸다. - 횡단 생성이 측점마다 평면 곡선반경(`plan_radius_m`)을 낸다. 노선 폴리라인 위에서 앞뒤 10m 떨어진 세 점의 외접원 반경이며, 직선(1만m 이상)은 null. 반지름 50m 원호로 50.008 이 나오는 것을 확인. - 법정 최소곡선반지름 표(별표2 Ⅰ.2.다.(1) — 40:60/40, 30:30/20, 20:15/12)와 배향곡선 하한 10m 를 설정에 넣고 계획선 정책에 실어 화면으로 내린다. 탐색이 쓰는 등급별 상수와는 별개다. - 종단 상단줄에 「곡선반경 부족 n곳 / 최소 R」 경고 추가 — 자동 보정·차단은 없다. 툴팁에 하한값과 배향곡선 하한 미만 개수를 적는다. - 이 반경은 다음 작업(곡선부 확폭)이 그대로 쓴다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ from typing import Any
|
||||
|
||||
import numpy as np
|
||||
|
||||
from config.config_system import FOREST_ROAD_PROFILE_ALIGNMENT
|
||||
from config.config_system import FOREST_ROAD_PROFILE_ALIGNMENT, FOREST_ROAD_PROFILE_CRITERIA
|
||||
|
||||
ALIGNMENT_SCHEMA_VERSION = 1
|
||||
# chainage를 dict 키로 쓸 때의 표기. 프론트엔드(`toFixed(3)`)와 반드시 같아야 한다.
|
||||
@@ -51,6 +51,10 @@ class AlignmentPolicy:
|
||||
max_grade_pct: float
|
||||
curve_skip_delta_pct: float
|
||||
paved: bool
|
||||
#: 법정 평면 최소곡선반지름(m) — 위반 표시 기준(2026-09-06). 0이면 판정하지 않는다.
|
||||
min_plan_radius_m: float = 0.0
|
||||
#: 배향곡선 하한(m) — 이보다 급하면 경고만 낸다.
|
||||
hairpin_min_radius_m: float = 0.0
|
||||
|
||||
@classmethod
|
||||
def from_config(
|
||||
@@ -60,6 +64,7 @@ class AlignmentPolicy:
|
||||
max_grade_pct: float,
|
||||
curve_skip_delta_pct: float,
|
||||
paved: bool,
|
||||
min_plan_radius_m: float = 0.0,
|
||||
) -> "AlignmentPolicy":
|
||||
config = FOREST_ROAD_PROFILE_ALIGNMENT
|
||||
return cls(
|
||||
@@ -76,6 +81,8 @@ class AlignmentPolicy:
|
||||
max_grade_pct=float(max_grade_pct),
|
||||
curve_skip_delta_pct=float(curve_skip_delta_pct),
|
||||
paved=bool(paved),
|
||||
min_plan_radius_m=float(min_plan_radius_m),
|
||||
hairpin_min_radius_m=float(FOREST_ROAD_PROFILE_CRITERIA["hairpin_min_radius_m"]),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@@ -140,6 +147,9 @@ class AlignmentPolicy:
|
||||
"max_grade_pct": self.max_grade_pct,
|
||||
"curve_skip_delta_pct": self.curve_skip_delta_pct,
|
||||
"paved": self.paved,
|
||||
# 평면 곡선 판정값 — 화면 위반 표시가 쓴다(2026-09-06).
|
||||
"min_plan_radius_m": self.min_plan_radius_m,
|
||||
"hairpin_min_radius_m": self.hairpin_min_radius_m,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user