fix(B06 십자선): 십자선 = 형상과 한 높이(측점 설계 높이) · 원지반 십자선 · 평면 초안 계획선 표본도 초안 종단 (413-1)

- 카드 · B05 오른쪽 판 · [상세] 창 십자선 · 계획 상자 = section.design.design_elevation_m · 설계 없을 때만 종단 표본
- 원지반 십자선(center_z · 원지반 색 · 다른 무리) 먼저 그림 · 겹치면 보라 위 · 확대 보정 둘 다
- [상세] 표 원지반고 = 원지반 십자 · 절성토고 = 둘 다
- 시험 318 · 150 · 164 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QyNXY2TUKXCFMwAca2APG
This commit is contained in:
2026-10-18 12:19:39 +09:00
co-authored by Claude Opus 5.5
parent 19ab7d54b9
commit c9b4f0bede
14 changed files with 210 additions and 54 deletions
+6 -3
View File
@@ -344,7 +344,9 @@ export function createCrossSectionCard(
} else {
const { sourceSamples, maxOffset, elevationMid, displayMax, pixelsPerMeter, heightPx } =
metrics;
const hasDesign = designElevation !== undefined && Number.isFinite(designElevation);
// 십자선 · 계획 상자 = 형상과 한 높이(그 측점 설계 높이 · 413) · 설계 없을 때만 넘겨받은 종단 표본
const designZ = section.design?.design_elevation_m ?? designElevation;
const hasDesign = designZ !== undefined && Number.isFinite(designZ);
const valid = sourceSamples.filter(validElevation);
const exaggeration = Math.max(verticalExaggeration, 0.1);
// 좌표 규약(+offset=좌, -offset=우)을 표준 횡단면도 관례에 맞춘다: 진행방향을 바라보는
@@ -378,7 +380,7 @@ export function createCrossSectionCard(
elevationMid,
exaggeration,
centerZ: section.center_z ?? null,
designZ: hasDesign ? (designElevation as number) : null,
designZ: hasDesign ? (designZ as number) : null,
});
renderAxes(cardZoomStates.get(section.station_id) ?? IDENTITY_VIEW);
@@ -610,7 +612,8 @@ export function createCrossSectionCard(
const scaleCenter = appendCardFrame(svg, plotLayer, {
valid,
centerX: x(0),
designElevation: hasDesign ? (designElevation as number) : null,
designElevation: hasDesign ? (designZ as number) : null,
groundElevation: section.center_z ?? null,
toY: toDisplayY,
widthPx,
heightPx,