feat(지도): 634-2 · 634-3 아이콘 표 두 장 · 묶음 메뉴 · 한 행 배선 · 호버 = 표(요구 546)
- 겹 표(map_layer_list) = 그룹1 22 줄 표 차례 · title = 호버제목 · group(수계망도 · 도로 · 토지·건물 · 제한·재해) · pages · 숨김 표 걷음 · 도로300m 한 줄(「도로」 묶음 · 기능 남김) - 겹 줄(map_layer_bar) = 단독 넷 | 묶음 넷(여럿 고르기 메뉴 · 켠 수 배지 · 안 닫힘) | 그래픽 카드 · sync 가 단추 · 메뉴 줄 막힘 · 글을 맞춤(why = 페이지 까닭) - 도구 표(map_toolbar) = 그룹2 17 줄 title · mapToolGroups 가 글을 표로 맞춤 · 기본 단추 생성 · 지형 칩 막힘 「수치지형도/라이다 — 까닭」 - 띠 = 한 자료 · 겹 둘(GL fillEdge 거름 · 옛 캔버스 · 범례 줄 따로) · B05 띠 받기(D03 과 같은 서버 길 · bandCollection 공용) - D03 = 겹 줄 · 도구줄 한 행(createMapToolRow) · 222px 기댐 · 줄바꿈 CSS 걷음 · 측점 · 기울기 호버 덮어쓰기 걷음 · LAS 올리기 호버 걷음 - B05 = 세로 두 줄 → 한 행 · 호버 덮어쓰기 걷음(도구줄 · 1m 등고선 · 3D · 추천) · 겹 막힘 querySelector 덮어쓰기 → 공용 sync · 임도(업로드) 보임 + 「받은 임도 자료 없음」 막힘 · 스냅 간격 날 select → 고르기 메뉴(하나) - 켬끔 기억 열쇠 · 측점 · 기울기 처음 값 · 그래픽 카드 취향 열쇠 둘 그대로 - 낡은 시험 고침(568_1 · 622_2 · 624_2 · 624_3 · 553_4 · 625_draw · b05_routeedit_initial · 626_3 · 390_4 · 346_2 · 353_1 · 581_2 · 584_1 · 584_3) — 표 꼴 row() · 호버 글 = 표 · 한 행 · 고르기 메뉴로 바뀐 글을 잡음 · 새 지킴 634_2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,10 +26,12 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import { showToast } from "@ui/ui_template_elements";
|
||||
import { createMapToolRow } from "@ui/ui_template_map_tools";
|
||||
import { themeColor } from "@ui/ui_template_palette";
|
||||
import { readByKey, writeByKey } from "../A00_Common/b_page_state";
|
||||
import { soilColor, tileOnly, type TileOnlyKey } from "../A00_Common/map/map_forest_layers";
|
||||
import { createMapLayerBar } from "../A00_Common/map/map_layer_bar";
|
||||
import { bandCollection } from "../A00_Common/map/map_layer_data";
|
||||
import { LAYERS, LINE_LAYERS, ZONE_COLORS, type RoadPick } from "../A00_Common/map/map_layer_list";
|
||||
import type { TerrainSource } from "../A00_Common/map/map_terrain_chip";
|
||||
import { createMapLegend } from "../A00_Common/map/map_legend";
|
||||
@@ -91,9 +93,9 @@ const CANVAS_PREF_KEY = "aislo:pref:d03.canvas";
|
||||
const NO_SATELLITE_NOTE = "옛 그림은 위성 바탕 없이 그림";
|
||||
type DataKey = keyof Prepared;
|
||||
|
||||
/** 겹 → 받는 자료(임도 짐작 = 도로 자료 · 조각만 쓰는 겹 = 없음). */
|
||||
/** 겹 → 받는 자료(임도 짐작 = 도로 자료 · 도로 띠 = 띠 자료 · 조각만 쓰는 겹 = 없음). */
|
||||
const dataKey = (key: Exclude<PlanLayerKey, TileOnlyKey>): DataKey =>
|
||||
key === "forestRoad" ? "road" : key;
|
||||
key === "forestRoad" ? "road" : key === "roadBands" ? "bands" : key;
|
||||
|
||||
export interface PlanLayers {
|
||||
bar: HTMLElement;
|
||||
@@ -189,12 +191,10 @@ export function createPlanLayers(opts: {
|
||||
sync();
|
||||
map.redrawBase();
|
||||
}
|
||||
const bar = layerBar.root;
|
||||
bar.classList.add("d03-plan__layers");
|
||||
// 571-1 — 오른쪽 평면 도구줄이 이 줄 오른쪽부터(CSS `--d03-layers-w`)
|
||||
new ResizeObserver(() =>
|
||||
map.root.style.setProperty("--d03-layers-w", `${layerBar.bar.offsetWidth}px`),
|
||||
).observe(layerBar.bar);
|
||||
// 634-3 — 한 행 두 영역(왼쪽 겹 줄 · 오른쪽 평면 도구줄 · 영역마다 가로 밀기)
|
||||
const bar = createMapToolRow(layerBar.root, map.toolbar);
|
||||
bar.classList.add("d03-plan__row");
|
||||
layerBar.root.classList.add("d03-plan__layers"); // 가이드 촬영이 잡음
|
||||
const legendBox = createMapLegend("d03-plan__legend");
|
||||
const legend = legendBox.root;
|
||||
|
||||
@@ -543,23 +543,14 @@ export function createPlanLayers(opts: {
|
||||
} finally {
|
||||
window.clearTimeout(slow);
|
||||
}
|
||||
} else if (key === "bands") {
|
||||
} else if (key === "bands" || key === "roadBands") {
|
||||
const info = await fetchPlanBands(projectId);
|
||||
got.bands = {
|
||||
stream: prepare(info.stream.collection),
|
||||
road: prepare(info.road.collection),
|
||||
info,
|
||||
};
|
||||
const band = (name: "stream" | "road", fallback: string): GeoJsonCollection =>
|
||||
glTagged(info[name].collection, () => themeColor(`--draw-map-band-${name}`, fallback), {
|
||||
_band: name,
|
||||
});
|
||||
put("bands", {
|
||||
features: [
|
||||
...(band("road", "#facc15").features ?? []),
|
||||
...(band("stream", "#22d3ee").features ?? []),
|
||||
],
|
||||
});
|
||||
put("bands", bandCollection(info));
|
||||
} else {
|
||||
const collection = tiles.collection("지명");
|
||||
got.place = (collection.features ?? []).flatMap((feature) => {
|
||||
|
||||
Reference in New Issue
Block a user