/* ============================================================================= * 2D 지도 레이어 목록·기본값·색 (B04) * * 어떤 레이어를 다루는지, 처음에 무엇이 켜져 있는지, 무슨 색으로 그리는지만 모은다. * 지도 뷰어 본체(`B04_PreProcess_UI_MapViewer.ts`)가 700줄 한계에 닿아 분리했다. * 색 값의 정의처는 `ui_template_theme.css`(`--map-*`)이며 여기는 이름만 잇는다. * ========================================================================== */ import { themeColor } from "@ui/ui_template_palette"; export const BACKGROUND_LAYERS = ["white", "satellite", "hybrid"] as const; // 유수방향은 화면에 쓰지 않기로 해 목록에서 뺐다(2026-08-01 사용자 지시). export const GIS_LAYERS = [ "지적도", "행정구역_시군구", "행정구역_읍면동", "등고선", "도엽_등고선", "도엽_하천중심선", "도엽_표고점", "도엽_성절토", "도엽_옹벽석축", ] as const; export type BackgroundLayer = (typeof BACKGROUND_LAYERS)[number]; export type GisLayer = (typeof GIS_LAYERS)[number]; /* ── 처음 열었을 때 켜져 있을 레이어 (2026-08-01 사용자 지정) ────────────── * 지도가 복잡해지지 않도록 실제로 자주 보는 것만 켠 채로 시작한다. * 나머지는 버튼으로 그때그때 켠다. */ export const BACKGROUND_DEFAULT_ON: Record = { white: true, satellite: true, hybrid: false, }; export const GIS_DEFAULT_ON: Record = { 지적도: false, 행정구역_시군구: true, 행정구역_읍면동: true, 등고선: false, 도엽_등고선: false, 도엽_하천중심선: true, 도엽_표고점: false, 도엽_성절토: false, 도엽_옹벽석축: false, }; /** 등고 라벨(계곡선 수치) 기본 표시 여부. */ export const CONTOUR_LABEL_DEFAULT_ON = false; /** 이만큼(px) 이하로 움직였다 뗐으면 클릭으로 본다 — 손떨림으로 선택이 안 되는 일을 막는다. */ export const CLICK_SLOP_PX = 4; /** 레이어별 색은 `ui_template_theme.css`의 `--map-*`가 정의처다. 여기는 이름만 잇는다. * (fallback 값은 CSS가 아직 안 붙은 첫 프레임 대비용 안전값) */ const GIS_LAYER_COLOR_TOKENS: Record = { 지적도: ["--map-cadastral", "#f97316"], 행정구역_시군구: ["--map-sigungu", "#7c3aed"], 행정구역_읍면동: ["--map-eupmyeondong", "#22c55e"], 등고선: ["--map-contour", "#fdba74"], 도엽_등고선: ["--map-sheet-contour", "#a5b4fc"], 도엽_하천중심선: ["--map-sheet-stream", "#2563eb"], 도엽_표고점: ["--map-sheet-elev-point", "#f9a8d4"], 도엽_성절토: ["--map-sheet-cutfill", "#f43f5e"], 도엽_옹벽석축: ["--map-sheet-wall", "#0f766e"], }; export const gisLayerColor = (layer: GisLayer): string => themeColor(...GIS_LAYER_COLOR_TOKENS[layer]); /** 등고 라벨 표기 대상 레이어와 표고 속성 키 (gpkg=CTRLN_HG, 도엽=등고수치) */ export const CONTOUR_LABEL_KEYS: Partial> = { 등고선: ["CTRLN_HG"], 도엽_등고선: ["등고수치"], };