From 0ea75e512f7cde0e537bec028764e3052e76f82a Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 4 Sep 2026 22:58:45 +0900 Subject: [PATCH] =?UTF-8?q?style(B03):=20=EA=B3=84=ED=9A=8D=EB=85=B8?= =?UTF-8?q?=EC=84=A0=20=EB=AF=B8=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=E2=80=94=20?= =?UTF-8?q?=EB=B2=94=EC=9C=84=20=EC=A0=90=EC=84=A0=20=EC=83=81=EC=9E=90=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0,=20=EC=8B=A4=EC=84=A0=20=EB=85=B9=EC=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 계획노선처럼 그릴 선이 있는 자료에는 범위 점선 상자를 그리지 않음. 점구름·래스터는 그대로 상자를 그림. - 노선 선 색을 녹색으로. 지형 범위를 벗어나면 붉은 경고색으로 덮어쓰는 규칙은 유지. Co-Authored-By: Claude Opus 5 (1M context) --- B03_FileInput/B03_FileInput_UI_Preview.ts | 23 +++++++++++++---------- B03_FileInput/B03_FileInput_UI_Style.css | 4 +++- 2 files changed, 16 insertions(+), 11 deletions(-) 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;