diff --git a/B03_FileInput/B03_FileInput_UI_Preview.ts b/B03_FileInput/B03_FileInput_UI_Preview.ts index a9fefe44..d85fe6ce 100644 --- a/B03_FileInput/B03_FileInput_UI_Preview.ts +++ b/B03_FileInput/B03_FileInput_UI_Preview.ts @@ -302,16 +302,19 @@ export function renderSlotPreview(host: HTMLElement, options: PreviewOptions): v svg.setAttribute("role", "img"); const project = projector(extent); - // 자료가 덮는 땅 범위 — 어느 자료든 늘 그린다. - const [rectX, rectTop] = project(extent.xMin, extent.yMax); - const [rectRight, rectBottom] = project(extent.xMax, extent.yMin); - const rect = document.createElementNS(SVG_NS, "rect"); - rect.setAttribute("class", "b03-file__preview-extent"); - rect.setAttribute("x", String(rectX)); - rect.setAttribute("y", String(rectTop)); - rect.setAttribute("width", String(rectRight - rectX)); - rect.setAttribute("height", String(rectBottom - rectTop)); - svg.append(rect); + // 자료가 덮는 땅 범위 — 그릴 도형이 없는 자료에만 그린다. 계획노선은 선 자체가 + // 범위를 보여 주므로 점선 상자를 빼고 선만 남긴다(2026-09-04 사용자 지시). + if (!path) { + const [rectX, rectTop] = project(extent.xMin, extent.yMax); + const [rectRight, rectBottom] = project(extent.xMax, extent.yMin); + const rect = document.createElementNS(SVG_NS, "rect"); + rect.setAttribute("class", "b03-file__preview-extent"); + rect.setAttribute("x", String(rectX)); + rect.setAttribute("y", String(rectTop)); + rect.setAttribute("width", String(rectRight - rectX)); + rect.setAttribute("height", String(rectBottom - rectTop)); + svg.append(rect); + } let label = L("B03_File_Preview_Extent"); // 라이다 탑뷰 점 그림 — 분석기가 훑는 길에 주워 둔 XY 를 그대로 찍는다. diff --git a/B03_FileInput/B03_FileInput_UI_Style.css b/B03_FileInput/B03_FileInput_UI_Style.css index df638aff..1aa9cba5 100644 --- a/B03_FileInput/B03_FileInput_UI_Style.css +++ b/B03_FileInput/B03_FileInput_UI_Style.css @@ -679,7 +679,9 @@ .b03-file__preview-route { fill: none; - stroke: var(--color-primary, #4a3aff); + /* 계획노선 선 색 — 녹색(2026-09-04 사용자 지시). 지형 범위를 벗어나면 아래에서 + 붉은색으로 덮어써 경고로 쓴다. */ + stroke: var(--color-success, #16a34a); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5;