- 755-1 켠 동안 끊김 허용(가운데 묶음 지움) · 고칠 때마다 다시 추적 걷음 · 끌 때 끊김 = 알림하고 안 끔 · 바뀜 = 확인창 → /route/follow 한 걸음 · 켠 동안 되돌리기 = 예정노선 판 사진첩(Ctrl+Z · 도구줄 단추 · bindHistoryControls local) · [잇기] 기능 표 b05 사용 - 755-2 켠 동안 재기 = D03 재기 겹(createPlanMeasure · 선 따라 · 두 점) · 받은 노선 = 분홍 점선 + 검은 테(기존 --draw-map-route-3 · theme.css 안 고침) · 켬 설명 걷음 · 위치 칸 걷음(기능 표 site b05 숨김 · 칸 자리 그리기 하나 · 찾기 이동 · toPlan 걷음) - 낡은 시험 고침: test_626_3(되돌리기 = 판 사진첩 · join b05 사용) · test_635_3(칸 하나 · 위치 숨김 · 끌 때 한 번 · RouteEdit 줄 한도 683 → 690) · test_635_5(찾기 이동 걷음) · 새 지킴 시험 test_755_expected_flow Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
135 lines
4.2 KiB
TypeScript
135 lines
4.2 KiB
TypeScript
/* =============================================================================
|
|
* D03_PlanAnalysis_UI_Features.ts
|
|
* 노선 그리기 기능 표(PLAN 635-1 · 요구서 546 4장) — 예정노선(d03) · B05 평면이 같은 그리기 부품을 쓰고 이 표로만 가름.
|
|
* 한 줄 = 기능 열쇠 · 이름 · 페이지마다 쓰임(use 사용 · view 보기만 · hide 숨김) · 까닭.
|
|
* 숨김을 바꿀 때 = 이 표만 고침(부품 · 키트가 `featureUse` 로 읽음) · 꼴 = 지도 도구줄 표(`map_toolbar`).
|
|
* ========================================================================== */
|
|
|
|
import type { MapPage } from "../A00_Common/map/map_layer_list";
|
|
|
|
export type PlanPage = MapPage;
|
|
export type FeatureUse = "use" | "view" | "hide";
|
|
export type PlanFeature =
|
|
| "site"
|
|
| "draw"
|
|
| "extend"
|
|
| "select"
|
|
| "props"
|
|
| "history"
|
|
| "terrain"
|
|
| "road-upload"
|
|
| "branch"
|
|
| "years"
|
|
| "set"
|
|
| "join"
|
|
| "others"
|
|
| "points"
|
|
| "plan-work";
|
|
|
|
export interface PlanFeatureRow {
|
|
key: PlanFeature;
|
|
name: string;
|
|
pages: Record<PlanPage, FeatureUse>;
|
|
why?: string;
|
|
}
|
|
|
|
export const PLAN_FEATURES: readonly PlanFeatureRow[] = [
|
|
{
|
|
key: "site",
|
|
name: "주소 · 장소 찾기",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "B 사업지 = 전처리 확정",
|
|
},
|
|
{
|
|
key: "draw",
|
|
name: "긋기 네 방식 · 길이 · 기울기 · Tab · Shift · 부채꼴 · ± 색",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "extend",
|
|
name: "이어 긋기 · 다시 긋기 · 빈 땅 새 선(선 없을 때)",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "select",
|
|
name: "고름 노드 → 선 → 전체 · 끌어 고르기 · 노드 끌기 · 꺾임점 · 지움",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "props",
|
|
name: "속성 판 지반고 · 측점 · 길이 · 기울기 · 경위도(B05 = 서버 변환)",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "history",
|
|
name: "되돌리기 · 다시하기 · 길이측정 · 3D(B05 = B05 것)",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "terrain",
|
|
name: "기준점 · 지형 받기 · 다시 받기 · 10 km 알림",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "B 지형 = 전처리 확정",
|
|
},
|
|
{
|
|
key: "road-upload",
|
|
name: "임도(업로드) 올리기 · 묶음 목록",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "서버 B 400 · 받은 자료로 보임",
|
|
},
|
|
{
|
|
key: "branch",
|
|
name: "갈래 · 둘째 선 · 다른 선과 잇기 · 가운데 토막 지움(끝 토막 지움은 사용)",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "B 계획선 한 줄",
|
|
},
|
|
{
|
|
key: "years",
|
|
name: "구간 나눔 마커 · 구역 · 연도 고침 · 선 이름",
|
|
pages: { d03: "use", b05: "view" },
|
|
why: "받은 몫 고정",
|
|
},
|
|
{
|
|
key: "set",
|
|
name: "노선 세트(연도-번호) 칸 · 세트 줄 · 이름표",
|
|
pages: { d03: "use", b05: "view" },
|
|
why: "받은 몫 고정",
|
|
},
|
|
{
|
|
key: "join",
|
|
name: "[잇기] 두 선 끝 이음(B05 = 켠 동안 끊긴 곳 이음)",
|
|
pages: { d03: "use", b05: "use" },
|
|
},
|
|
{
|
|
key: "others",
|
|
name: "같은 예정노선 다른 세트(다른 해 · 같은 해 다른 업체) 흐린 겹 · 이음점 붙기",
|
|
pages: { d03: "hide", b05: "view" },
|
|
why: "B 는 받은 세트만 고침 · 예정노선은 모든 세트를 고침",
|
|
},
|
|
{
|
|
key: "points",
|
|
name: "지점 칸 · 핀 · 지점에서 긋기",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "B 저장 자리 없음",
|
|
},
|
|
{
|
|
key: "plan-work",
|
|
name: "등록 기준점 · 확정 · 업체 지정 · 배포 · 산림청 [저장]",
|
|
pages: { d03: "use", b05: "hide" },
|
|
why: "예정노선 업무",
|
|
},
|
|
];
|
|
|
|
/** 그 페이지 쓰임 — 표에 없는 열쇠 = 숨김. */
|
|
export function featureUse(page: PlanPage, key: PlanFeature): FeatureUse {
|
|
return PLAN_FEATURES.find((row) => row.key === key)?.pages[page] ?? "hide";
|
|
}
|
|
|
|
/** 고칠 수 있게 씀(보기만 · 숨김 = 거짓). */
|
|
export const featureOn = (page: PlanPage, key: PlanFeature): boolean =>
|
|
featureUse(page, key) === "use";
|
|
|
|
/** 보임(사용 · 보기만). */
|
|
export const featureShown = (page: PlanPage, key: PlanFeature): boolean =>
|
|
featureUse(page, key) !== "hide";
|