feat(B04·B05): 하단 지도 · 평면 노선 편집 · 배수유역도 바탕 MapLibre 적용 — 공용 GL 부품 · TM 주인 카메라 · 처음 = 켬 · WebGL 못 쓰면 옛 캔버스 (PLAN 589-2 · 요구 448)

- 공용 부품 ui_template_gl_map(지도 세우기 · 자료 · 켬끔 · 색 다시 · 카메라) — D03 GL 껍데기를 올림 · D03 은 겹 꼴만(바뀜 없음)
- TM 주인 따라가기(B04_PreProcess_UI_MapGl · logic/_MapGl_Frame) — 화면 가운데 1차 맞춤 닮음꼴 카메라 + 남는 늘림(웹 메르카토르 가로세로 0.43 %)은 지도 칸 CSS 행렬 · 칸 둘레 여유 8 px
- B04 하단 지도 — 위성 조각(줌인 선명) · 백지도 · 혼합 · 도엽 · 지적 · 행정 · 등고선 겹 GL · 등고 글 · 배수유역 · 계획선 · 관 = 위 캔버스
- B05 배수유역도 — 위성 · 세부유역 채움(짝홀 다각형) · 분수령 · 도엽 GL · 번호 · 상류 세류 · 관 · 강도 = 위 캔버스
- B05 평면 노선 편집 — 바탕칠 · LAS · 도엽 등고선(간격 거름 · 1 m 선) · 하천(LAS 상자 자름) GL · 노선 둘레 띠 = 지도 칸 clip-path · 고른 등고선 · 글 · 노선 · 꼭짓점 = 위 캔버스
- 켬끔 칸(GPU · 세 화면 한 취향 aislo:pref:map.canvas) · WebGL 못 씀 · 잃음 = 옛 캔버스 + 알림 · 누름 · 끌기 판정 손 안 댐
- B04 층 단추 글 = MapLayers gisLayerLabel(지도 본체 700 줄)
- 지킴 시험 test_589_2_gl_frame(카메라 대 캔버스 0.5 px · 칸 행렬 늘이기만 · 되돌림 1 mm · 상자 자르기 · 짝홀 다각형)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 21:45:41 +09:00
co-authored by Claude Opus 5.5
parent 49255c07cb
commit 21afc379e4
20 changed files with 1534 additions and 201 deletions
@@ -7,6 +7,7 @@
* ========================================================================== */
import { themeColor } from "@ui/ui_template_palette";
import { currentLanguageIndex, ui_locales } from "@ui/ui_template_locale";
import { fetchCachedSheetLayer } from "../A00_Common/b_asset_cache";
import { fetchGisGeoJson } from "./B04_PreProcess_Api_Fetch";
import type { GeoJsonCollection } from "./B04_PreProcess_UI_MapRender";
@@ -99,6 +100,22 @@ const GIS_LAYER_COLOR_TOKENS: Record<GisLayer, [name: string, fallback: string]>
도엽_옹벽석축: ["--map-sheet-wall", "#0f766e"],
};
const GIS_LABEL_KEYS: Record<GisLayer, keyof typeof ui_locales> = {
지적도: "B04_Surface_Map_Cadastral",
행정구역_시군구: "B04_Surface_Map_Sigungu",
행정구역_읍면동: "B04_Surface_Map_Eupmyeondong",
등고선: "B04_Surface_Map_Contour",
도엽_등고선: "B04_Surface_Map_SheetContour",
도엽_하천중심선: "B04_Surface_Map_SheetStream",
도엽_표고점: "B04_Surface_Map_SheetElevPoint",
도엽_성절토: "B04_Surface_Map_SheetCutFill",
도엽_옹벽석축: "B04_Surface_Map_SheetWall",
};
/** 층 단추 글(지금 말). */
export const gisLayerLabel = (layer: GisLayer): string =>
ui_locales[GIS_LABEL_KEYS[layer]][currentLanguageIndex];
export const gisLayerColor = (layer: GisLayer): string =>
themeColor(...GIS_LAYER_COLOR_TOKENS[layer]);