- D03_Api 겹 받기 → map_layer_api.ts(D03_Api 가 다시 내놓음) - UI_SlopeBands · logic SlopeBands · UI_SatLight → map_slope_bands · logic/map_slope_bands · map_sat_light - 범례 줄 legendRows → map_legend.ts(받은 자료 꼴 LegendData · D03 LayerLegend 가 다시 내놓음) - glImage · glTagged · shadeImage · loadImage · WATER_KEYS · FOREST_ROAD_KINDS · hectare → map_layer_data.ts - 시험 경로 고침 — test_603(TS 자리) · test_606_1(밝기 파일) · test_584_3(범례 글 = 공용 파일도 읽음) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
/* =============================================================================
|
|
* map_sat_light.ts
|
|
* 공용 지도 위성 바탕 밝기(D03 · B05 · 624-3 공용으로 옮김)(요구 475) — 노선 선 대비를 위해 위성을 조금 어둡게 · 사용자가 범례에서 조절.
|
|
* 값 = 밝기 상한(0.4~1) · 계정 화면 취향으로 기억. 칠하기 = D03 `UI_MapGl` `setSatelliteLight` · B05 `UI_RouteEdit_Layers`.
|
|
* ========================================================================== */
|
|
|
|
import { createSlider } from "@ui/ui_template_input";
|
|
import { readByKey, writeByKey } from "../b_page_state";
|
|
|
|
const PREF_KEY = "aislo:pref:d03.satellite-light";
|
|
export const SAT_LIGHT_MIN = 0.4;
|
|
export const SAT_LIGHT_MAX = 1;
|
|
export const SAT_LIGHT_DEFAULT = 0.8;
|
|
|
|
/** 기억한 밝기 — 없거나 깨지면 처음 값. */
|
|
export function readSatLight(): number {
|
|
const value = Number(readByKey(PREF_KEY));
|
|
return readByKey(PREF_KEY) !== null && value >= SAT_LIGHT_MIN && value <= SAT_LIGHT_MAX
|
|
? value
|
|
: SAT_LIGHT_DEFAULT;
|
|
}
|
|
|
|
/** 범례 「위성 밝기」 칸 — 움직이면 바로 `onChange` · 기억. */
|
|
export function createSatLightRow(value: number, onChange: (value: number) => void): HTMLElement {
|
|
const { root, input } = createSlider({
|
|
label: "위성 밝기",
|
|
min: SAT_LIGHT_MIN,
|
|
max: SAT_LIGHT_MAX,
|
|
step: 0.05,
|
|
value,
|
|
format: (v) => `${Math.round(v * 100)} %`,
|
|
onInput: (v) => {
|
|
writeByKey(PREF_KEY, String(v));
|
|
onChange(v);
|
|
},
|
|
});
|
|
input.dataset.role = "satellite-light";
|
|
return root;
|
|
}
|