feat(가이드): D01~D04 사용자 가이드 다시 쓰기 · 그림 다시 찍기 (PLAN 563-3 · 요구 389)

- D01 생성 칸 셋(시작 연도 · 사업 지역 · 이름 자동) · 그림 여섯
- D02 전체 시점 · 종점 두 점 + [일반][위성] · 저장 뒤 이동 · 그림 아홉
- D03 손 긋기(점 찍기 · 미리보기 · 제약 넷 · 종점 붙기 · 갈래 · 구역 마크 + 조각 연도 · 도구 여섯 · 지형 범위 미리보기 · 3D) · 옛 후보 · 횡단 글 지움 · 그림 열일곱
- D04 조각 단위(조각 표 · 조각마다 업체 · 내보내기 · 연결) · 그림 여덟

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 21:46:11 +09:00
co-authored by Claude Sonnet 5.5
parent 2ba29afb79
commit 86939a6eec
103 changed files with 630 additions and 643 deletions
+11 -15
View File
@@ -1,6 +1,6 @@
# 예정노선 등록
여러 해에 걸친 예정노선의 기본 정보(사업 연도 · 지역 · 임도 종류 · 설계속도 · 이름)를 넣고 새 예정노선 프로젝트를 만드는 첫 화면.
여러 해에 걸친 예정노선의 새 프로젝트를 만드는 첫 화면. 시작 연도 · 사업 지역 · 이름 세 칸만 넣음.
## 여는 길
@@ -13,23 +13,19 @@
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 사업 연도 시작 · 끝 | 사업 기간을 넣음. 한 해짜리면 두 칸을 같은 해로 둠 |
| 2 | 사업 지역 | 사업이 있는 지역 이름을 적음. 꼭 넣어야 하는 칸 |
| 3 | 임도 종류 · 설계속도 | 임도 종류를 고르면 옆 설계속도 목록이 따라 바뀜 |
| 4 | 프로젝트명 | 위 칸을 채우면 이름이 저절로 만들어짐. 직접 고쳐도 됨 |
| 5 | 노선 시작 · 종료 측점 | 거리(누가거리 m)로 넣으면 옆에 측점(`61+14.5`)이 보임. 비워 두어도 됨 |
| 6 | 단추 줄 | [?] 도움말 · [취소] 대시보드로 돌아감 · [등록] 프로젝트를 만듦 |
| 1 | 사업 연도 시작 | 사업 첫 해. 처음에는 올해가 들어 있음 |
| 2 | 사업 지역 | 사업이 있는 지역 이름. 꼭 넣어야 하는 칸 |
| 3 | 프로젝트명 | 위 두 칸을 채우면 「<시작 연도> <사업 지역> 노선 계획」으로 저절로 만들어짐. 직접 고쳐도 됨 |
| 4 | 단추 줄 | [?] 도움말 · [취소] 대시보드로 돌아감 · [등록] 프로젝트를 만듦 |
## 작업 순서
1. 대시보드 [+] → 「예정노선」 카드. [새 프로젝트 여는 길](D01/01_새_프로젝트_여는_길) 참고.
2. 사업 연도 시작 · 끝과 사업 지역을 넣음. [사업 연도 · 지역](D01/02_사업연도_지역) 참고.
3. 임도 종류와 설계속도를 고름. [임도 종류 · 설계속도](D01/03_임도종류_설계속도) 참고.
4. 프로젝트명을 확인함. [프로젝트명](D01/04_프로젝트명) 참고.
5. 필요하면 노선 시작 · 종료 측점을 넣음. [노선 시작 · 종료 측점](D01/05_누가거리) 참고.
6. [등록]을 누름. 문제가 있는 칸은 아래에 빨간 안내가 나옴. [입력 오류와 등록](D01/06_입력오류와_등록) 참고.
7. 등록되면 바로 다음 화면인 [기준 지정](D02/00_설명서)이 열림.
2. 시작 연도와 사업 지역을 넣음. [사업 연도 · 지역](D01/02_사업연도_지역) 참고.
3. 프로젝트명을 확인함. [프로젝트명](D01/03_프로젝트명) 참고.
4. [등록]을 누름. 문제가 있는 칸은 아래에 빨간 안내가 나옴. [입력 오류와 등록](D01/04_입력오류와_등록) 참고.
5. 등록되면 바로 다음 화면인 [기준 지정](D02/00_설명서)이 열림.
> 주의: 등록 직후에는 노선 위치가 비어 있음. 지점을 정하고 저장해야 분석 단계로 갈 수 있음.
> 주의: 등록 직후에는 시점 · 종점이 비어 있음. 두 점을 정하고 저장해야 노선 분석 단계로 갈 수 있음.
> 참고: 칸마다 뜻과 기본값은 [칸 뜻](D01/10_칸_뜻)에 있음.
> 참고: 사업 연도 끝 · 임도 종류 · 설계속도 · 측점은 이 화면에서 받지 않음. 끝 연도는 [노선 분석](D03/00_설명서)에서 구역마다 연도를 정하고 [저장]할 때 저절로 정해짐. 칸마다 뜻은 [칸 뜻](D01/10_칸_뜻)에 있음.
@@ -1,28 +1,26 @@
# 사업 연도 · 지역
사업 기간(시작 · 끝 연도)과 사업 지역을 넣는 칸.
사업을 시작하는 해와 사업 지역을 넣는 칸.
## 여는 길
- 예정노선 등록 화면 맨 위 줄 두 칸과 그 아래 「사업 지역」 칸.
- 예정노선 등록 화면 맨 위 「사업 연도 시작」과 그 옆 「사업 지역」 칸.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 「사업 연도 시작」에 첫 해를 넣음. 처음에는 올해가 들어 있음. |
| 2 | 「사업 연도 끝」에 마지막 해를 넣음. 한 해짜리 사업이면 시작과 같은 해. |
| 3 | 「사업 지역」에 지역 이름을 적음(예: 울진군 금강송면). 100 글자까지. |
| 4 | 「종류」 칸은 「노선 계획」으로 고정이라 고칠 수 없음. |
| 1 | 「사업 연도 시작」에 사업 첫 해를 넣음. 처음에는 올해가 들어 있음. |
| 2 | 「사업 지역」에 지역 이름을 적음(예: 울진군 금강송면). 100 글자까지. |
![사업 연도와 지역 입력](D01_02_year_region.webp)
![시작 연도와 사업 지역 입력](D01_02_year_region.webp)
그림 번호 — 1 사업 연도 시작 · 2 사업 연도 끝 · 3 사업 지역 · 4 종류(고정)
그림 번호 — 1 사업 연도 시작 · 2 사업 지역
## 보이는 것
- 연도를 바꾸면 아래 「프로젝트명」이 바로 따라 바뀜(예: 2027~2029 울진군 금강송면 간선임도).
- 연도는 2000 ~ 2100 안의 정수만 받음. 끝 연도가 시작 연도보다 앞이면 [등록] 때 안내가 나옴. [입력 오류와 등록](D01/06_입력오류와_등록) 참고.
- 연도 수 + 1 개의 지점이 다음 화면에서 필요함. 2027 ~ 2029 세 해면 지점 네 개.
- 두 칸을 바꾸면 아래 「프로젝트명」이 바로 따라 바뀜(예: 2027 울진군 금강송면 노선 계획).
- 연도는 2000 ~ 2100 안의 정수만 받음.
- 사업 연도 끝은 묻지 않음. 노선 분석에서 구역마다 연도를 고르고 [저장]하면 가장 늦은 연도가 끝 연도가 됨.
> 주의: 사업 연도는 등록 뒤에 [기준 지정](D02/00_설명서) 화면에서 바꿀 수 없음. 등록 전에 확인.
> 주의: 시작 연도는 등록 뒤에 바꾸는 화면이 없음. 등록 전에 확인.
@@ -1,32 +0,0 @@
# 임도 종류 · 설계속도
노선을 설계하는 기준이 되는 임도 종류와 속도를 고르는 칸.
## 여는 길
- 예정노선 등록 화면 가운데 줄의 「임도 종류」 · 「설계속도」.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 「임도 종류」에서 간선임도 · 산불진화임도 · 작업임도 중 하나를 고름. |
| 2 | 옆 「설계속도」 목록이 종류에 맞게 바뀜. 원하는 속도를 고름. |
![임도 종류와 설계속도](D01_03_type_speed.webp)
그림 번호 — 1 임도 종류 · 2 설계속도(간선임도에서 40 km/h 를 고른 모습)
## 보이는 것
| 임도 종류 | 고를 수 있는 설계속도 |
| --- | --- |
| 간선임도 | 20 · 30 · 40 km/h |
| 산불진화임도 | 20 · 30 · 40 km/h |
| 작업임도 | 20 km/h 만 |
- 임도 종류를 바꾸면 설계속도가 가장 낮은 값(20 km/h)으로 돌아감. 종류를 먼저 정하고 속도를 고름.
- 임도 종류는 프로젝트명에도 들어감.
- 같은 기준을 임도설계(B 그룹)도 씀. 종류와 속도에 따라 분석 단계의 기울기 · 곡선 기준이 자동으로 정해짐.
> 참고: 이 화면에서 기울기 상한 · 최소 곡선 반지름 같은 기준값을 따로 넣는 칸은 없음.
@@ -1,6 +1,6 @@
# 프로젝트명
대시보드와 표에 보이는 프로젝트 이름. 칸을 채우면 저절로 만들어짐.
대시보드와 표에 보이는 프로젝트 이름. 시작 연도와 사업 지역을 넣으면 저절로 만들어짐.
## 여는 길
@@ -10,16 +10,16 @@
| 단계 | 할 일 |
| --- | --- |
| 1 | 사업 연도 · 사업 지역 · 임도 종류를 넣으면 이름이 저절로 채워짐. |
| 1 | 시작 연도 · 사업 지역을 넣으면 이름이 저절로 채워짐. |
| 2 | 다른 이름을 쓰고 싶으면 칸을 눌러 직접 고침. 255 글자까지, 비워 둘 수 없음. |
![프로젝트명 자동 채움](D01_04_name.webp)
![프로젝트명 자동 채움](D01_03_name.webp)
그림 번호 — 1 프로젝트명(사업 지역을 넣자 이름에 지역이 들어간 모습)
그림 번호 — 1 프로젝트명(시작 연도와 지역이 들어간 모습)
## 보이는 것
- 이름 = 「사업 연도」 + 「사업 지역」 + 「임도 종류」를 띄어 이은 글. 연도가 여러 해이면 「2027~2029」 꼴, 한 해이면 해 하나만 들어감.
- 이름 = 「<시작 연도> <사업 지역> 노선 계획」. 예: 2027 울진군 금강송면 노선 계획.
- 이름을 직접 고치기 전에는 위 칸을 바꿀 때마다 통째로 다시 만들어짐.
- 직접 고친 뒤에는 위 칸을 바꿔도 자동으로 만든 조각만 새 값으로 바뀌고, 직접 넣은 글은 그대로 남음. 직접 지운 조각은 되살아나지 않음.
@@ -15,11 +15,11 @@
| 3 | 문제가 없으면 프로젝트가 만들어지고 「프로젝트를 만들었습니다.」 알림과 함께 [기준 지정](D02/00_설명서) 화면이 열림. |
| 4 | 등록하지 않고 나가려면 [취소]를 누름. 대시보드로 돌아감. |
![입력 오류 안내](D01_06_errors.webp)
![입력 오류 안내](D01_04_errors.webp)
그림 번호 — 1 끝 연도가 시작 연도보다 앞 · 2 사업 지역 비어 있음 · 3 종료 측점이 시작 이하
그림 번호 — 1 시작 연도가 범위 밖 · 2 사업 지역 비어 있음 · 3 프로젝트명 비어 있음
![단추 줄](D01_07_buttons.webp)
![단추 줄](D01_05_buttons.webp)
그림 번호 — 1 [?] 도움말 · 2 [취소] · 3 [등록]
@@ -27,10 +27,8 @@
| 안내 | 뜻 |
| --- | --- |
| 숫자 범위 안내 | 시작 연도가 2000 ~ 2100 밖 |
| 「끝 연도는 시작 연도와 같거나 뒤여야 합니다.」 | 끝 연도가 시작 연도보다 앞 |
| 「숫자 범위를 벗어났습니다」 | 시작 연도가 2000 ~ 2100 밖 |
| 「필수 항목을 입력하세요.」 | 사업 지역 또는 프로젝트명이 빔 |
| 「종료 측점은 시작보다 커야 합니다.」 | 종료 값이 시작 값 이하 |
- 산림청이 아닌 계정이거나 회사에 연결되지 않은 계정이면 서버가 「예정노선은 산림청만 만들 수 있습니다.」로 막고, 이 화면에 머묾.
- 등록에 실패하면 서버가 알려 준 까닭이 알림으로 뜸.
@@ -1,27 +0,0 @@
# 노선 시작 · 종료 측점
노선 시작과 끝의 측점을 미리 정해 두는 칸. 거리(누가거리, m)로 넣으면 칸 옆에 측점(No.+거리, 예 `61+14.5`)이 바로 보임. 비워 두어도 등록됨.
## 여는 길
- 예정노선 등록 화면 맨 아래 「노선 시작 측점 (누가거리 m 입력)」 · 「노선 종료 측점 (누가거리 m 입력)」.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 노선 첫 지점의 거리(m)를 「노선 시작 측점」 칸에 넣음. 0 이상의 수. 칸 옆에 `= 측점` 이 바로 나옴. |
| 2 | 노선 끝에서 목표로 하는 거리(m)를 「노선 종료 측점」 칸에 넣음. 시작 값보다 커야 함. |
| 3 | 모르면 두 칸 모두 비워 둠. |
![누가거리 입력](D01_05_chainage.webp)
그림 번호 — 1 노선 시작 측점 · 2 노선 종료 측점
## 보이는 것
- 시작 값은 [노선 분석](D03/00_설명서) 화면의 측점 번호가 어디서부터 세는지를 정함. 비우면 0 부터.
- 종료 값은 분석을 마친 뒤 실제 이은 끝 누가와 비교해 「목표 · 차이」로 보임.
- 종료 값이 시작 값 이하이면 [등록] 때 「종료 측점은 시작보다 커야 합니다.」 안내가 나옴.
> 참고: 누가거리 = 노선을 따라 잰 거리(m). 측점 = 20 m 마다 번호(No.)를 매기고 남는 거리를 더한 표기(1234.5 m = `61+14.5`). 저장되는 값은 m 그대로.
+11 -19
View File
@@ -7,34 +7,26 @@
| 칸 | 뜻 | 기본값 | 범위 · 규칙 |
| --- | --- | --- | --- |
| 사업 연도 시작 | 사업 첫 해 | 올해 | 2000 ~ 2100 의 정수 |
| 사업 연도 끝 | 사업 마지막 해 | 올해 | 시작 연도와 같거나 뒤여야 함 · 2100 까지 |
| 사업 지역 | 사업이 있는 지역 이름 | 비어 있음 | 필수 · 글자 100 자까지 · 예: 울진군 금강송면 |
| 종류 | 프로젝트 종류 | 「노선 계획」 | 고정 · 고칠 수 없음 |
| 임도 종류 | 간선임도 · 산불진화임도 · 작업임도 중 하나 | 간선임도(목록 맨 위) | 설계속도 선택지와 이름 조합에 쓰임 |
| 설계속도 | 노선을 설계하는 기준 속도 | 20 km/h | 아래 표 참조 |
| 프로젝트명 | 대시보드에 보이는 이름 | 자동 조합 | 필수 · 글자 255 자까지 |
| 노선 시작 측점 (누가거리 m 입력) | 노선 첫 지점의 거리(m) · 옆에 측점 표기 | 비어 있음 | 0 이상 · 선택 |
| 노선 종료 측점 (누가거리 m 입력) | 노선 끝 지점의 계획 목표 거리(m) · 옆에 측점 표기 | 비어 있음 | 시작 값보다 커야 함 · 선택 |
| 프로젝트명 | 대시보드에 보이는 이름 | 「<시작 연도> <사업 지역> 노선 계획」 자동 | 필수 · 글자 255 자까지 |
## 설계속도 선택지
| 임도 종류 | 고를 수 있는 값 |
## 이 화면에서 받지 않는 값
| 값 | 어디서 정해지나 |
| --- | --- |
| 간선임도 | 20 · 30 · 40 km/h |
| 산불진화임도 | 20 · 30 · 40 km/h |
| 작업임도 | 20 km/h 만 |
- 임도 종류를 바꾸면 설계속도 목록이 바뀌고 값이 가장 낮은 값(20 km/h)으로 돌아감.
- 임도설계(B 그룹)와 같은 기준이며, 허용되지 않는 값이 서버에 오면 20 km/h 로 처리함.
| 사업 연도 끝 | [노선 분석](D03/00_설명서)에서 구역마다 연도를 고르고 [저장]하면 가장 늦은 연도로 정해짐 |
| 임도 종류 · 설계속도 | 받지 않음. [확정 · 내보내기](D04/00_설명서) 뒤 업체가 임도 프로젝트로 연결하면 임도설계 기본값(작업임도 · 20 km/h)으로 시작하고, 임도 프로젝트에서 바꿈 |
| 노선 시작 · 종료 측점 | 받지 않음. 측점은 선마다 No.0 부터 새로 셈 |
| 시점 · 종점 | [기준 지정](D02/00_설명서)에서 지도로 정함 |
## 프로젝트명 자동 조합
- 「사업 연도」 · 「사업 지역」 · 「임도 종류」 를 띄어 이어 붙임. 예: 2026~2028 울진군 금강송면 간선임도
- 연도가 여러 해이면 「시작~끝」 꼴이고, 한 해이면 해 하나만 들어감.
- 「시작 연도」 · 「사업 지역」을 띄어 이어 붙이고 뒤에 「노선 계획」을 붙임. 예: 2027 울진군 금강송면 노선 계획.
- 이름을 직접 고치기 전에는 위 칸을 바꿀 때마다 통째로 다시 만들어짐.
- 이름을 고친 뒤에는 위 칸이 바뀌어도 자동 조각이 차지한 부분만 새 값으로 바뀌고, 직접 넣은 글은 그대로 남음. 직접 지운 조각은 되살아나지 않음.
## 입력 오류 안내
- 시작 연도가 2000 ~ 2100 밖이면 숫자 범위 안내가 나옴.
- 끝 연도가 시작보다 앞이면 「끝 연도는 시작 연도와 같거나 뒤여야 합니다.」 가 나옴.
- 지역이나 이름이 비면 필수 입력 안내가 나옴.
- 종료 측점이 시작 이하이면 「종료 측점은 시작보다 커야 합니다.」 가 나옴.
- 산림청이 아닌 계정으로 등록하면 서버가 「예정노선은 산림청만 만들 수 있습니다.」 로 막음. 회사에 연결되지 않은 계정도 막힘.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

+5 -7
View File
@@ -1,10 +1,8 @@
[
{"name":"D01_00_overview","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"wait_ms":600}],"clip":null,"callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(1)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(3)"},{"n":3,"sel":".ui-form-grid > .ui-field:nth-child(5)"},{"n":4,"sel":".ui-form-grid > .ui-field:nth-child(7)"},{"n":5,"sel":".ui-form-grid > .ui-field:nth-child(8)"},{"n":6,"sel":".ui-general-block__actions--end","pos":"br"}]},
{"name":"D01_00_overview","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"wait_ms":500}],"clip":".ui-card--raised","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(1)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(2)"},{"n":3,"sel":".ui-form-grid > .ui-field:nth-child(3)"},{"n":4,"sel":".ui-general-block__actions--end","pos":"br"}]},
{"name":"D01_01_dashboard_new","route":"#/b01-account","project":"none","before":[{"wait_ms":2500},{"eval":"[...document.querySelectorAll('button')].find(x=>x.textContent.trim()==='+ 새 프로젝트'&&x.offsetParent).click()"},{"wait":".b01-new-project__grid"},{"wait_ms":600}],"clip":".b01-new-project","callouts":[{"n":1,"sel":"[data-new-project=\"plan\"]"}]},
{"name":"D01_02_year_region","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"fill":".ui-form-grid > .ui-field:nth-child(1) input","value":"2027"},{"fill":".ui-form-grid > .ui-field:nth-child(2) input","value":"2029"},{"fill":".ui-form-grid > .ui-field:nth-child(3) input","value":"울진군 금강송면"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(1)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(2)"},{"n":3,"sel":".ui-form-grid > .ui-field:nth-child(3)"},{"n":4,"sel":".ui-form-grid > .ui-field:nth-child(4)"}]},
{"name":"D01_03_type_speed","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"select":".ui-form-grid > .ui-field:nth-child(6) select","value":"40"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(5)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(6)"}]},
{"name":"D01_04_name","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"fill":".ui-form-grid > .ui-field:nth-child(3) input","value":"울진군 금강송면"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(7)"}]},
{"name":"D01_05_chainage","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"fill":".ui-form-grid > .ui-field:nth-child(8) input","value":"0"},{"fill":".ui-form-grid > .ui-field:nth-child(9) input","value":"1100"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(8)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(9)"}]},
{"name":"D01_06_errors","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"fill":".ui-form-grid > .ui-field:nth-child(1) input","value":"2029"},{"fill":".ui-form-grid > .ui-field:nth-child(2) input","value":"2027"},{"fill":".ui-form-grid > .ui-field:nth-child(8) input","value":"500"},{"fill":".ui-form-grid > .ui-field:nth-child(9) input","value":"100"},{"click":".ui-general-block__actions--end button:last-child"},{"wait":".ui-field__error.is-visible"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(2)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(3)"},{"n":3,"sel":".ui-form-grid > .ui-field:nth-child(9)"}]},
{"name":"D01_07_buttons","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-general-block__actions--end"}],"clip":".ui-general-block__actions--end","callouts":[{"n":1,"sel":".ui-general-block__actions--end button:nth-child(1)"},{"n":2,"sel":".ui-general-block__actions--end button:nth-child(2)"},{"n":3,"sel":".ui-general-block__actions--end button:nth-child(3)"}]}
{"name":"D01_02_year_region","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"wait_ms":500},{"fill":".ui-form-grid > .ui-field:nth-child(1) input","value":"2027"},{"fill":".ui-form-grid > .ui-field:nth-child(2) input","value":"울진군 금강송면"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(1)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(2)"}]},
{"name":"D01_03_name","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"wait_ms":500},{"fill":".ui-form-grid > .ui-field:nth-child(1) input","value":"2027"},{"fill":".ui-form-grid > .ui-field:nth-child(2) input","value":"울진군 금강송면"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(3)"}]},
{"name":"D01_04_errors","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-form-grid"},{"wait_ms":500},{"fill":".ui-form-grid > .ui-field:nth-child(1) input","value":"1999"},{"fill":".ui-form-grid > .ui-field:nth-child(3) input","value":""},{"click":".ui-general-block__actions--end button:last-child"},{"wait":".ui-field__error.is-visible"},{"wait_ms":400}],"clip":".ui-form-grid","callouts":[{"n":1,"sel":".ui-form-grid > .ui-field:nth-child(1)"},{"n":2,"sel":".ui-form-grid > .ui-field:nth-child(2)"},{"n":3,"sel":".ui-form-grid > .ui-field:nth-child(3)"}]},
{"name":"D01_05_buttons","route":"#/d01-plan-register","project":"none","before":[{"wait":".ui-general-block__actions--end"}],"clip":".ui-general-block__actions--end","callouts":[{"n":1,"sel":".ui-general-block__actions--end button:nth-child(1)"},{"n":2,"sel":".ui-general-block__actions--end button:nth-child(2)"},{"n":3,"sel":".ui-general-block__actions--end button:nth-child(3)"}]}
]
+14 -14
View File
@@ -1,13 +1,13 @@
# 기준 지정
예정노선 1단계. 사업 연도마다 노선의 시점과 종점을 지도 위에 정하는 화면.
예정노선 1단계. 사업 전체의 시점과 종점, 두 점을 지도 위에 정하는 화면. 연도는 나누지 않음.
## 여는 길
- [예정노선 등록](D01/00_설명서)에서 [등록]을 누르면 바로 열림.
- 대시보드 프로젝트 표에서 예정노선 줄의 단계 막대 「기준 지정」을 눌러도 열림.
- 이미 만든 예정노선은 어느 단계 화면에서든 ☰ 에서 「기준 지정」을 골라 돌아옴. [단계 이동 메뉴](D02/05_단계_이동_메뉴) 참고.
- 지점 저장은 산림청만 할 수 있음. 지정받은 다른 회사는 보기만 가능하며 저장하면 「예정노선 지점은 산림청만 고칠 수 있습니다.」 안내로 막힘.
- 이미 만든 예정노선은 어느 단계 화면에서든 ☰ 에서 「기준 지정」을 골라 돌아옴. [단계 이동 메뉴](D02/06_단계_이동_메뉴) 참고.
- 두 점 저장은 산림청만 할 수 있음. 지정받은 다른 회사는 보기만 가능함.
![화면 한눈에](D02_00_overview.webp)
@@ -15,20 +15,20 @@
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 제목 줄 | 단계 이름(기준 지정)과 프로젝트 이름. 왼쪽 ☰ 로 진행 단계 메뉴를 엶 |
| 2 | 「연도 지점」 표 | 지점마다 줄 하나. 📍 · 경도 · 위도 칸이 있음 |
| 3 | 안내 글 | 지점을 놓는 법 한 줄 안내 |
| 4 | 지도 | 지점 표지와 연도별 선이 그려짐. 지도를 눌러 지점을 놓고, 표지를 끌어 옮김 |
| 5 | 단추 줄 | [?] 가이드 · [<] 이전 · [>] 다음 · [저장] |
| 1 | 「전체 시점 · 종점」 카드 | 시점 · 종점 두 줄. 📍 · 경도 · 위도 칸이 있음 |
| 2 | [일반] [위성] 단추 | 바탕 지도를 바꿈. 고른 값은 기억됨 |
| 3 | 지도 | 시점 · 종점 표지와 둘을 잇는 선이 보임. 지도를 눌러 점을 놓고, 표지를 끌어 옮김 |
| 4 | 단추 줄 | [?] 가이드 · [<] 이전 · [>] 다음 · [저장] |
## 작업 순서
1. 화면이 열리면 지점 줄이 사업 연도 수 + 1 개 나타남. 예: 2027 ~ 2029 세 해이면 네 줄. [연도 지점 표](D02/01_연도_지점_표) 참고.
2. 놓을 지점이 줄에서 강조되어 있음. 지도를 눌러 그 지점을 놓음. [지도에서 지점 놓기](D02/02_지도에서_지점_놓기) 참고.
1. 화면이 열리면 시점과 종점 두 줄이 있음. 비어 있는 첫 줄이 놓을 점으로 강조됨. [시점 · 종점 표](D02/01_시점_종점_표) 참고.
2. 지도에서 시점이 될 자리를 누름. 다음으로 종점 자리를 누름. [지도에서 지점 놓기](D02/02_지도에서_지점_놓기) 참고.
3. 놓은 뒤 고치려면 표지를 끌어 옮기거나 경도 · 위도 칸에 값을 직접 넣음. [좌표 직접 입력](D02/03_좌표_직접_입력) 참고.
4. 모든 줄이 채워지면 연도마다 다른 색의 선이 지점 사이를 이음.
5. [저장] 또는 [>]를 누름. [단추와 저장](D02/04_단추와_저장) 참고.
4. 지형이 헷갈리면 [위성]으로 바꿔 봄. [일반 · 위성 지도](D02/04_일반_위성) 참고.
5. [저장] 또는 [>]를 누름. [단추와 저장](D02/05_단추와_저장) 참고.
6. 노선 분석 화면이 열리면 이 두 점 사이를 직접 그어 감. [노선 분석](D03/00_설명서) 참고.
> 주의: 서버에는 [저장] 이나 [>]를 눌러야 반영됨. 자동 저장은 없음.
> 주의: 서버에는 [저장]이나 [>]를 눌러 저장하거나, 다른 단계로 옮겨 갈 때 저장되어야 반영됨. 화면 안에서 점을 놓기만 해서는 서버에 남지 않음.
> 참고: 저장하지 않고 고친 값은 같은 브라우저 탭 안에서는 화면을 다시 열어도 남아 있음.
> 참고: 연도는 이 화면에서 나누지 않음. 노선 분석에서 그은 선에 구역을 나누고 구역마다 연도를 고름.
@@ -0,0 +1,32 @@
# 시점 · 종점 표
왼쪽 패널의 「전체 시점 · 종점」 카드. 점마다 줄 하나로 이름 · 📍 · 경도 · 위도를 보여 줌.
## 여는 길
- 기준 지정 화면 왼쪽 패널 맨 위의 「전체 시점 · 종점」 카드. 제목 오른쪽 ▼ 를 누르면 접고 펼침.
![시점 · 종점 표](D02_01_points_table.webp)
그림 번호 — 1 안내 글 · 2 시점 줄 · 3 📍 단추 · 4 경도 칸 · 5 위도 칸 · 6 저장 좌표계 줄
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 두 줄 중 「시점」이 노선 전체의 출발점, 「종점」이 도착점. |
| 2 | 줄 왼쪽 띠로 지금 놓을 점인지 확인. 📍 를 누른 줄이 강조됨. |
| 3 | 값을 고치는 방법은 [지도에서 지점 놓기](D02/02_지도에서_지점_놓기) · [좌표 직접 입력](D02/03_좌표_직접_입력) 참고. |
## 보이는 것
| 줄 이름 | 뜻 |
| --- | --- |
| 시점 | 노선 전체의 출발점. 노선 분석에서 첫 점을 이 자리에서 시작함 |
| 종점 | 노선 전체의 도착점. 노선 분석에서 이 점 가까이 가면 선이 종점에 붙음 |
- 표 아래 한 줄 = 저장 상태. 저장 전이면 「아직 저장 안 함」, 저장했으면 「저장 좌표계 EPSG:번호」와 시점의 X · Y(m).
- 산림청이 아닌 계정은 📍 단추가 안 보이고 칸이 잠겨 있음. 보기만 가능.
- 옛 프로젝트처럼 두 점이 비어 있어도 연도별 지점이 있었다면 첫 연도 시점과 마지막 연도 종점을 이어 두 점으로 접어 보여 줌.
> 참고: 칸마다 뜻과 규칙은 [칸 뜻](D02/10_칸_뜻)에 있음. 좌표계가 정해지는 방법은 [쓰인 방법과 근거](D02/20_쓰인_방법과_근거) 참고.
@@ -1,33 +0,0 @@
# 연도 지점 표
왼쪽 패널의 「연도 지점」 카드. 지점마다 줄 하나로 이름 · 📍 · 경도 · 위도를 보여 줌.
## 여는 길
- 기준 지정 화면 왼쪽 패널 맨 위의 「연도 지점」 카드. 제목 오른쪽 ▼ 를 누르면 접고 펼침.
![연도 지점 표](D02_01_points_table.webp)
그림 번호 — 1 안내 글 · 2 지점 한 줄 · 3 📍 단추 · 4 경도 칸 · 5 위도 칸 · 6 저장 좌표계 줄
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 줄 이름으로 어느 지점인지 확인. 첫 줄 = 첫 연도 시점, 마지막 줄 = 마지막 연도 종점. |
| 2 | 줄 왼쪽 색 띠로 어느 연도 선인지 확인. 지도 선 색과 짝(6 색을 돌려 씀). |
| 3 | 사이 줄은 「앞 연도 종점 · 다음 연도 시점」 한 점. 하나만 옮기면 두 연도의 선이 함께 움직임. |
| 4 | 값을 고치는 방법은 [지도에서 지점 놓기](D02/02_지도에서_지점_놓기) · [좌표 직접 입력](D02/03_좌표_직접_입력) 참고. |
## 보이는 것
| 줄 이름 | 뜻 |
| --- | --- |
| 첫 연도 시점 | 노선 전체의 출발점 |
| 앞 연도 종점 · 다음 연도 시점 | 한 점이 두 역할 |
| 마지막 연도 종점 | 노선 전체의 도착점 |
- 표 아래 한 줄 = 저장 상태. 저장 전이면 「아직 저장 안 함」, 저장했으면 「저장 좌표계 EPSG:번호」와 첫 연도 시점의 X · Y(m).
- 산림청이 아닌 계정은 📍 단추가 안 보이고 칸이 잠겨 있음. 보기만 가능.
> 참고: 칸마다 뜻과 규칙은 [칸 뜻](D02/10_칸_뜻)에 있음. 좌표계가 정해지는 방법은 [쓰인 방법과 근거](D02/20_쓰인_방법과_근거) 참고.
@@ -1,12 +1,12 @@
# 지도에서 지점 놓기
지도를 눌러 지점을 놓고, 놓은 표지를 끌어 옮기는 방법.
지도를 눌러 시점 · 종점을 놓고, 놓은 표지를 끌어 옮기는 방법.
## 여는 길
- 기준 지정 화면 가운데 지도와 왼쪽 「연도 지점」 표의 📍 단추.
- 기준 지정 화면 가운데 지도와 왼쪽 「전체 시점 · 종점」 카드의 📍 단추.
![연도별 선이 그려진 지도](D02_02_year_colors.webp)
![시점과 종점을 이은 지도](D02_02_map.webp)
그림 번호 — 1 지도 위 안내 글
@@ -14,26 +14,26 @@
| 단계 | 할 일 |
| --- | --- |
| 1 | 놓을 지점을 고름. 화면이 열리면 비어 있는 첫 줄이 자동으로 골라져 강조됨. 다른 줄에 놓으려면 그 줄의 📍 를 누름. |
| 1 | 놓을 점을 고름. 화면이 열리면 비어 있는 첫 줄이 자동으로 골라져 강조됨. 다른 줄에 놓으려면 그 줄의 📍 를 누름. |
| 2 | 지도에서 놓을 자리를 누름. 그 자리에 표지가 놓이고 표의 경도 · 위도가 채워짐. |
| 3 | 놓고 나면 다음 빈 지점이 자동으로 놓을 지점이 됨. |
| 3 | 놓고 나면 다음 빈 점이 자동으로 놓을 점이 됨. |
| 4 | 놓은 뒤 고치려면 표지를 마우스로 끌어 옮김. 표의 값이 따라 바뀜. |
| 5 | 지도는 빈 곳을 끌어 옮기고 휠로 확대 · 축소함. |
![놓을 지점으로 고른 줄](D02_03_pick_point.webp)
그림 번호 — 1 📍 단추 · 2 강조된 줄(놓을 지점)
그림 번호 — 1 📍 단추 · 2 강조된 줄(놓을 점)
![지점을 고르지 않고 지도를 누른 모습](D02_04_map_toast.webp)
![점을 고르지 않고 지도를 누른 모습](D02_04_map_toast.webp)
그림 번호 — 1 「지도에 놓을 지점 고르기」 안내
## 보이는 것
- 지점이 모두 놓이면 연도마다 다른 색의 선이 지점 사이를 이음. 표지 위에는 지점 이름이 붙음.
- 놓을 지점을 고르지 않고 지도를 누르면 「지도에 놓을 지점 고르기」 안내가 나오고 아무것도 놓이지 않음.
- 지점이 하나도 없으면 우리나라 가운데쯤이 먼저 보임. 처음 한 점을 놓으면 그 점에 맞춰 보이고, 그 뒤로는 사용자가 맞춘 보기(중심 · 확대)를 그대로 둠.
- 두 점이 모두 놓이면 둘 사이에 선이 이어짐. 표지 위에는 「시점」 · 「종점」 이름이 붙음.
- 놓을 점을 고르지 않고 지도를 누르면 「지도에 놓을 지점 고르기」 안내가 나오고 아무것도 놓이지 않음.
- 점이 하나도 없으면 우리나라 가운데쯤이 먼저 보임. 처음 점을 놓으면 그 점에 맞춰 보이고, 그 뒤로는 사용자가 맞춘 보기(중심 · 확대)를 그대로 둠.
- 지도는 카카오맵을 씀.
- 산림청이 아닌 계정은 지도를 눌러도 놓이지 않고 표지도 끌 수 없음. 지도 위 안내 글이 「보기 전용 — 지점은 산림청만 고칩니다.」로 바뀜.
> 주의: 놓은 지점은 [저장] 이나 [>]를 누르기 전까지 서버에 남지 않음. [단추와 저장](D02/04_단추와_저장) 참고.
> 주의: 놓은 점은 [저장]이나 [>]를 누르거나 다른 단계로 옮겨 가기 전까지 서버에 남지 않음. [단추와 저장](D02/05_단추와_저장) 참고.
@@ -4,7 +4,7 @@
## 여는 길
- 왼쪽 「연도 지점」 표의 줄마다 있는 경도 · 위도 두 칸.
- 왼쪽 「전체 시점 · 종점」 카드의 줄마다 있는 경도 · 위도 두 칸.
## 단계
@@ -12,7 +12,7 @@
| --- | --- |
| 1 | 고칠 줄의 경도 칸에 값을 넣음. |
| 2 | 위도 칸에도 값을 넣고 칸 밖을 누르거나 Tab 키를 누름. |
| 3 | 두 값이 범위 안이면 지점이 옮겨지고 지도 표지가 따라 움직임. |
| 3 | 두 값이 범위 안이면 점이 옮겨지고 지도 표지가 따라 움직임. |
| 4 | 범위 밖이면 두 칸이 빨갛게 표시되고 반영되지 않음. 값을 고쳐 다시 넣음. |
![범위 밖 값 안내](D02_05_coordinate_error.webp)
@@ -1,33 +0,0 @@
# 단추와 저장
왼쪽 패널 맨 아래 단추 줄 — [?] · [<] · [>] · [저장]과 저장 때 일어나는 일.
## 여는 길
- 기준 지정 화면 왼쪽 패널 맨 아래.
![단추 줄](D02_06_buttons.webp)
그림 번호 — 1 [?] 가이드 · 2 [<] 이전 단계(첫 단계라 흐림) · 3 [>] 다음 단계 · 4 [저장]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 모든 지점 줄을 채움. |
| 2 | [저장]을 누름. 지점이 서버에 저장되고 「지점을 저장했습니다.」 알림이 뜸. |
| 3 | 바로 다음 단계로 가려면 [저장] 대신 [>]를 누름. 지점을 저장한 뒤 [노선 분석](D03/00_설명서) 화면이 열림. |
| 4 | 저장하지 못하면(예: 빈 지점) 이 화면에 머묾. |
## 보이는 것
- 저장하면 표 아래 한 줄이 「저장 좌표계 EPSG:번호」와 첫 연도 시점의 X · Y(m)로 바뀜.
- 빈 지점이 남은 채 저장하면 「○○○○년 시점이 비었습니다.」 또는 「○○○○년 종점이 비었습니다.」로 막힘.
- 산림청이 아닌 계정은 [저장]이 안 보이고, [>]는 저장 없이 그냥 다음 화면으로 감.
- [>]는 지점 저장 뒤 [노선 분석](D03/00_설명서) 화면을 엶. 수치지형도(도엽) · 위성 사진 · 연도별 지형면 받기는 그 화면이 열릴 때 뒤에서 시작되며, 이미 받은 범위 안이면 건너뜀.
> 주의: 이미 분석 · 확정한 연도의 지점을 옮기면 그 연도의 분석 노선과 확정 상태가 비워지고 다시 분석해야 함. 1 mm 이내 변화는 같은 지점으로 보아 지우지 않음.
> 주의: 좌표계가 바뀌는 경우([쓰인 방법과 근거](D02/20_쓰인_방법과_근거) 참고)에는 모든 연도의 분석 노선이 비워짐.
> 참고: 연도 범위(시작 · 끝)는 등록 때 정해지며 이 화면에서 바꿀 수 없음.
@@ -0,0 +1,27 @@
# 일반 · 위성 지도
지도 오른쪽 위 [일반] [위성] 단추로 바탕 지도를 바꾸는 방법.
## 여는 길
- 기준 지정 화면 지도 오른쪽 위 두 칸짜리 단추.
![일반 · 위성 단추](D02_08_map_type.webp)
그림 번호 — 1 [일반] [위성] 단추(위성을 고른 모습)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [위성]을 누르면 위성 사진 위에 지명이 겹쳐 보이는 지도로 바뀜. |
| 2 | 도로 · 하천 이름을 보고 싶으면 [일반]을 누름. |
| 3 | 바꿔도 놓은 점 · 선은 그대로 있음. |
## 보이는 것
- 고른 값은 이 컴퓨터의 화면 취향으로 기억되어, 다음에 열어도 같은 지도로 열림.
- 두 지도 모두 카카오맵이며, 위성은 지명이 함께 나오는 종류임.
- 바탕 지도는 점을 놓는 데 도움을 주는 용도이며 저장되는 값과는 상관 없음.
> 참고: 노선 분석 화면의 바탕은 이 지도가 아니라 받은 위성 사진과 등고선임. [노선 분석](D03/00_설명서) 참고.
@@ -0,0 +1,31 @@
# 단추와 저장
왼쪽 패널 맨 아래 단추 줄 — [?] · [<] · [>] · [저장]과 저장 때 일어나는 일.
## 여는 길
- 기준 지정 화면 왼쪽 패널 맨 아래.
![단추 줄](D02_06_buttons.webp)
그림 번호 — 1 [?] 가이드 · 2 [<] 이전 단계(첫 단계라 흐림) · 3 [>] 다음 단계 · 4 [저장]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 시점과 종점을 모두 채움. |
| 2 | [저장]을 누름. 두 점이 서버에 저장되고 「지점을 저장했습니다.」 알림이 뜸. |
| 3 | 바로 다음 단계로 가려면 [>]를 누름. 바뀐 것이 있으면 저장한 뒤 [노선 분석](D03/00_설명서) 화면이 열림. |
| 4 | 저장하지 못하면(예: 점이 비어 있음) 이 화면에 머묾. |
## 보이는 것
- 저장하면 표 아래 한 줄이 「저장 좌표계 EPSG:번호」와 시점의 X · Y(m)로 바뀜.
- 다른 단계로 옮길 때(단계 아이콘 · [<] · [>] · 머리 ☰ 메뉴 · 브라우저 뒤로) 고친 것이 있으면 묻지 않고 저장한 뒤 옮겨 감. 저장이 실패하면 옮기지 않고 머묾.
- 산림청이 아닌 계정은 [저장]이 안 보이고, [>]는 저장 없이 그냥 다음 화면으로 감.
- 이미 노선 분석에서 그은 선은 두 점을 옮겨 저장해도 지우지 않음.
> 주의: 두 점의 평균 경도가 126° 나 128° 선을 넘게 옮기면 저장 좌표계가 바뀜. 자세한 내용은 [쓰인 방법과 근거](D02/20_쓰인_방법과_근거) 참고.
> 참고: 연도 범위는 이 화면에서 다루지 않음. 노선 분석에서 구역마다 연도를 고름.
@@ -24,4 +24,4 @@
- 단계는 기준 지정 → 노선 분석 → 확정 · 내보내기 순.
- 메뉴 아래에는 홈페이지 바로가기 · 언어 · 테마 · 로그아웃이 같이 있음.
> 주의: 지점을 고치고 저장하지 않은 채 다른 단계로 가면 서버에는 저장되지 않음. 먼저 [저장]을 누를 것.
> 참고: 기준 지정에서 점을 고친 채 메뉴로 다른 단계에 가도 묻지 않고 저장한 뒤 옮겨 감. 저장이 실패하면 이 화면에 머묾.
+12 -11
View File
@@ -1,14 +1,14 @@
# 칸 뜻
![연도 지점 표](D02_01_points_table.webp)
![시점 · 종점 표](D02_01_points_table.webp)
그림 번호는 [연도 지점 표](D02/01_연도_지점_표)와 같음.
그림 번호는 [시점 · 종점 표](D02/01_시점_종점_표)와 같음.
## 왼쪽 「연도 지점」 표
## 왼쪽 「전체 시점 · 종점」 카드
| 칸 | 뜻 | 규칙 |
| --- | --- | --- |
| 지점 이름 | 어느 연도의 시점 · 종점인지 | 예: 「2026 시점」 · 「2026 종점 · 2027 시점」 |
| 📍 | 지도 누름이 놓을 지점으로 고름 | 고른 줄이 강조됨 |
| 이름 | 「시점」 · 「종점」 | 고정. 줄은 두 개뿐 |
| 📍 | 지도 누름이 놓을 점으로 고름 | 고른 줄이 강조됨 |
| 경도 | 동서 위치(도) | 120 ~ 135 · 소수 가능 |
| 위도 | 남북 위치(도) | 30 ~ 45 · 소수 가능 |
@@ -17,13 +17,14 @@
- 범위 밖 값은 두 칸이 모두 빨갛게 표시되고 반영되지 않음.
## 지도 위
- 표지 하나 = 지점 하나. 마우스로 끌어 옮길 수 있음.
- 선 하나 = 연도 하나(그 해의 시점에서 종점까지). 색은 연도별로 다름.
- 지점이 하나도 없으면 우리나라 가운데쯤이 먼저 보임. 지점을 놓으면 처음 한 번만 그 지점에 맞춰 보이고, 그 뒤로는 사용자가 맞춘 보기(중심 · 확대)를 그대로 둠.
- 지도 아래 안내문 = 「지도를 눌러 지점을 놓습니다.」
- 표지 하나 = 점 하나. 마우스로 끌어 옮길 수 있음.
- 시점과 종점이 모두 놓이면 둘을 잇는 선 하나가 보임. 노선 분석에서 그을 실제 선이 아니라 두 점 사이를 보여 주는 참고선임.
- 점이 하나도 없으면 우리나라 가운데쯤이 먼저 보임. 점을 놓으면 처음 한 번만 그 점에 맞춰 보이고, 그 뒤로는 사용자가 맞춘 보기(중심 · 확대)를 그대로 둠.
- 지도 위 안내문 = 「지도를 눌러 지점을 놓습니다.」
- 오른쪽 위 [일반] [위성] = 바탕 지도 바꿈. [일반 · 위성 지도](D02/04_일반_위성) 참고.
## 표 아래 한 줄
| 표시 | 뜻 |
| --- | --- |
| 아직 저장 안 함 | 서버에 지점이 한 번도 저장되지 않음 |
| 저장 좌표계 EPSG:번호 · 연도 X · Y | 저장된 좌표계와 첫 연도 시점의 평면좌표(m, 소수 3 자리) |
| 아직 저장 안 함 | 서버에 두 점이 한 번도 저장되지 않음 |
| 저장 좌표계 EPSG:번호 · X · Y | 저장된 좌표계와 시점의 평면좌표(m, 소수 3 자리) |
@@ -2,8 +2,8 @@
## 좌표계 처리
- 사용자가 넣는 값은 모두 경도 · 위도(WGS84)임. 지도(카카오맵)도 이 값으로 그려짐.
- 저장할 때 서버가 모든 지점의 **평균 경도**를 보고 한국 평면좌표(TM) 띠 하나를 고른 뒤, 모든 지점을 그 한 가지 좌표계의 X(동쪽) · Y(북쪽) 미터 값으로 바꿔 저장함.
- 분석과 지형 받기는 이 평면좌표를 씀. 사용자가 변환을 따로 할 필요는 없음.
- 저장할 때 서버가 두 점의 **평균 경도**를 보고 한국 평면좌표(TM) 띠 하나를 고른 뒤, 두 점을 그 좌표계의 X(동쪽) · Y(북쪽) 미터 값으로 바꿔 저장함.
- 노선 분석의 지형 받기 · 선 길이 · 기울기는 이 평면좌표를 씀. 사용자가 변환을 따로 할 필요는 없음.
| 평균 경도 | 좌표계 | 이름 |
| --- | --- | --- |
@@ -11,24 +11,21 @@
| 126° 이상 128° 미만 | EPSG:5186 | 중부 |
| 128° 이상 | EPSG:5187 | 동부 |
- 한 노선은 연도가 달라도 항상 같은 좌표계 한 벌을 씀(연도마다 띠를 따로 쓰지 않음).
- 한 프로젝트는 항상 같은 좌표계 한 벌을 씀.
- 동해(5188)는 쓰지 않음.
- 지점을 옮겨 평균 경도가 126° 나 128° 선을 넘으면 좌표계가 바뀌고, 그러면 모든 연도가 다시 저장되며 분석 노선이 비워짐.
- 내보내기 때의 좌표계(5179)는 확정 · 내보내기 단계에서 다룸. 이 화면에서는 쓰지 않음.
## 직전 연도 종점 = 다음 연도 시점
- 화면: 점 하나를 두 연도가 함께 쓰는 지점 목록(연도 수 + 1 개)으로 다룸.
- 서버: 저장할 때 첫 연도는 보낸 시점을 쓰고, 이후 연도의 시점은 항상 직전 연도의 종점으로 맞춤. 따로 다른 값을 보내도 무시됨.
- 사업 연도 밖의 연도가 오거나 같은 연도가 두 번 오면 거절됨.
- 비어 있는 시점 · 종점이 있으면 「○○○○년 시점(종점)이 비었습니다.」 로 거절됨.
## 저장 규칙
- 바뀐 연도만 새로 쓰고, 안 바뀐 연도(1 mm 이내)는 그대로 둠.
- 바뀐 연도는 이미 있던 분석 노선과 확정 시각을 지움. 한 묶음으로 처리되어 일부만 저장되는 일은 없음.
- 사업 연도 밖으로 남아 있던 연도 행은 함께 지움.
- 저장은 산림청 계정만 가능함(시스템 관리자 또는 `.go.kr` 메일).
- 두 점은 프로젝트 한 칸(`plan_base_json`)에 한꺼번에 저장됨. 연도별로 나누어 저장하지 않음.
- 저장은 산림청 계정만 가능함(시스템 관리자 또는 `.go.kr` 메일). 그 밖의 계정이 저장하면 「예정노선 지점은 산림청만 고칠 수 있습니다.」로 막힘.
- 두 점을 옮겨도 이미 그은 선 · 갈래 · 구역은 지우지 않음.
- 두 점이 비어 있는 옛 예정노선(연도별 지점으로 만든 것)은 첫 연도 시점과 마지막 연도 종점을 이어 두 점으로 보여 줌. 저장하면 이 두 점이 정본이 됨.
## 화면 이동 때 저장
- 단계 아이콘 · [<] · [>] · 머리 ☰ 메뉴 · 브라우저 뒤로로 화면을 떠날 때 고친 것이 있으면 저장한 뒤 이동함. 저장이 실패하면 이동하지 않고 머묾.
- 저장하지 않고 고친 값은 같은 브라우저 탭 안에서는 화면을 다시 열어도 남아 있음. 서버에 저장된 값이 그사이 바뀌었으면(노선 분석에서 시점을 고친 경우) 서버 값을 우선함.
## 한계
- 좌표 입력은 경위도만 받음. 평면좌표(X · Y)를 직접 넣는 칸은 없음.
- 지도 위 위치는 카카오맵 화면 기준이며, 정밀한 측량 값이 필요하면 좌표 입력으로 넣을 것.
- 지형 받기와 분석에 관한 설명은 「노선 분석」 화면의 도움말을 볼 것.
- 지형 받기와 선 긋기에 관한 설명은 [노선 분석](D03/00_설명서)을 볼 것.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

+5 -4
View File
@@ -1,10 +1,11 @@
[
{"name":"D02_00_overview","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":".ui-workflow-overlay__header"},{"n":2,"sel":".d02-points"},{"n":3,"sel":".d02-info"},{"n":4,"sel":".d02-map","pos":"tr"},{"n":5,"sel":".ui-sidebar-actions","pos":"tr"}]},
{"name":"D02_00_overview","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":".d02-points"},{"n":2,"sel":".d02-map__type","pos":"bl"},{"n":3,"sel":".d02-map","pos":"br"},{"n":4,"sel":".ui-sidebar-actions","pos":"tr"}]},
{"name":"D02_01_points_table","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":".d02-panel .ui-sidebar-card","callouts":[{"n":1,"sel":".d02-panel p.d02-info:first-of-type"},{"n":2,"sel":".d02-points__row:nth-child(1)","pos":"tr"},{"n":3,"sel":".d02-points__row:nth-child(1) button","pos":"bl"},{"n":4,"sel":".d02-points__row:nth-child(1) input[data-axis=lon]","pos":"br"},{"n":5,"sel":".d02-points__row:nth-child(1) input[data-axis=lat]","pos":"br"},{"n":6,"sel":".d02-points ~ p.d02-info"}]},
{"name":"D02_02_year_colors","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":".d02-map","callouts":[{"n":1,"sel":".ui-kakao-map__hint"}]},
{"name":"D02_02_map","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":".d02-map","callouts":[{"n":1,"sel":".ui-kakao-map__hint"}]},
{"name":"D02_03_pick_point","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500},{"click":".d02-points__row:nth-child(2) button"},{"wait":".d02-points__row:nth-child(2).is-active"},{"wait_ms":300}],"settle_ms":1500,"clip":".d02-panel .ui-sidebar-card","callouts":[{"n":1,"sel":".d02-points__row:nth-child(2) button"},{"n":2,"sel":".d02-points__row:nth-child(2)"}]},
{"name":"D02_04_map_toast","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500},{"click":".ui-kakao-map__box"},{"wait":".ui-toast, .ui-toast-container, [class*=toast]"},{"wait_ms":400}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":"[class*=toast]","pos":"tr"}]},
{"name":"D02_04_map_toast","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500},{"click":".ui-kakao-map__box"},{"wait":"[class*=toast]"},{"wait_ms":400}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":"[class*=toast]","pos":"tr"}]},
{"name":"D02_05_coordinate_error","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500},{"fill":".d02-points__row:nth-child(1) input[data-axis=lon]","value":"200"},{"press":"Tab","sel":".d02-points__row:nth-child(1) input[data-axis=lon]"},{"wait":".d02-points__row:nth-child(1) input.is-error"},{"wait_ms":300}],"settle_ms":1500,"clip":".d02-panel .ui-sidebar-card","callouts":[{"n":1,"sel":".d02-points__row:nth-child(1) input[data-axis=lon]"},{"n":2,"sel":".d02-points__row:nth-child(1) input[data-axis=lat]"}]},
{"name":"D02_06_buttons","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500}],"settle_ms":1500,"clip":".ui-sidebar-actions","callouts":[{"n":1,"sel":".ui-sidebar-actions > button:nth-child(1)"},{"n":2,"sel":".ui-sidebar-actions > button:nth-child(2)"},{"n":3,"sel":".ui-sidebar-actions > button:nth-child(3)"},{"n":4,"sel":".ui-sidebar-actions > button:nth-child(4)"}]},
{"name":"D02_07_steps_menu","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"click":".app-burger"},{"wait":".app-drawer__steps .ui-workflow-layout__step"},{"wait_ms":700}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":".app-drawer__steps","pos":"tr"}]}
{"name":"D02_07_steps_menu","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"click":".app-burger"},{"wait":".app-drawer__steps .ui-workflow-layout__step"},{"wait_ms":700}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":".app-drawer__steps","pos":"tr"}]},
{"name":"D02_08_map_type","route":"#/d02-plan-base","project":"plan","before":[{"wait":".d02-points__row"},{"wait":".ui-kakao-map__box"},{"wait_ms":3500},{"click":".d02-map__type button:nth-child(2)"},{"wait_ms":3500}],"settle_ms":1500,"clip":".d02-map__type","callouts":[{"n":1,"sel":".d02-map__type","pos":"bl"}],"clip_pad":240}
]
+19 -17
View File
@@ -1,12 +1,13 @@
# 노선 분석
예정노선 2단계. 1단계에서 정한 지점들을 연도 구간마다 이어 주는 노선 후보를 자동으로 찾아 연도별로 하나씩 고르는 화면.
예정노선 2단계. 받은 지형 위에 시점에서 종점까지 직선을 이어 그어 본선을 만들고, 갈래를 더하고, 구역마다 연도를 정하는 화면.
## 여는 길
- [기준 지정](D02/00_설명서) 화면에서 [>]를 누르면 지점을 저장하고 이 화면이 열림.
- [기준 지정](D02/00_설명서) 화면에서 [>]를 누르면 두 점을 저장하고 이 화면이 열림.
- 대시보드 프로젝트 표의 단계 막대 「노선 분석」을 누르거나, ☰ 에서 「노선 분석」을 골라도 열림.
- 지점이 비어 있으면 「N년 지점이 비었습니다 — 1단계(기준 지정)에서 정하세요.」 안내만 나오고 진행이 안 됨.
- 시점 · 종점이 비어 있으면 「시점 · 종점이 비었습니다 — 1단계(기준 지정)에서 정하세요.」 안내만 나오고 진행이 안 됨.
- 긋기 · 지형 받기 · 저장은 산림청만 할 수 있음. 그 밖의 계정은 「보기만 — 산림청 계정에서 긋습니다.」로 보기만 가능함.
![화면 한눈에](D03_00_overview.webp)
@@ -14,23 +15,24 @@
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 평면 지도 | 위성 사진 위에 등고선 · 지점 · 노선 · 측점이 겹쳐 보임. 측점을 누르면 아래 횡단이 채워짐 |
| 2 | 횡단 판 | 누른 측점의 지반선 횡단. 제목 줄(「횡단」)을 눌러 접고 펼침 |
| 3 | 「지형」 카드 | 지형 받기 · 분석 진행 상태와 받은 지형 범위 안내 |
| 4 | 「연도별 노선」 카드 | 연도마다 후보 넷. 하나를 눌러 고름 |
| 5 | 단추 줄 | [?] · [<] · [>] · [분석] · [저장] · [3D] |
| 1 | 평면 지도 | 위성 사진 위에 등고선 · 시점(초록) · 종점(빨강) · 그은 선 · 측점 · 구역 마크 · 연도가 보임. 여기서 점을 눌러 선을 그음 |
| 2 | 「지형」 카드 | 지형을 받았는지 알려 주고, 받을 범위를 미리 보여 줌. [지형 받기](D03/01_지형_받기) 참고 |
| 3 | 「그리기」 카드 | [본선 긋기] · [갈래] · [구역 마크]와 긋는 방식(자유 · 길이 고정 · 기울기 고정 · 둘 다) |
| 4 | 「구역 · 연도」 카드 | 그은 선의 구역마다 연도를 고름. [구역 마크와 연도](D03/05_구역_마크와_연도) 참고 |
| 5 | 도구 여섯 | 지도 오른쪽 위. 되돌리기 · 다시하기 · 3D · 좌회전 · 우회전 · 거리재기. [도구 여섯](D03/06_도구_여섯) 참고 |
| 6 | 단추 줄 | [?] · [<] · [>] · [저장] · [초기화] |
## 작업 순서
1. 화면을 열면 지형을 자동으로 확인함. 받은 지형 밖이면 뒤에서 지형을 받기 시작함. [지형 받기](D03/01_지형_받기) 참고.
2. [분석]을 누름. 연도 구간마다 후보 넷을 찾음. [분석 · 저장 · 3D 단추](D03/05_분석_저장_단추) 참고.
3. 「연도별 노선」 카드에서 연도마다 후보 하나를 고름. 평면의 노선이 바로 바뀜. [연도별 노선 고르기](D03/02_연도별_노선_고르기) 참고.
4. 평면 지도에서 노선 · 측점을 확인하고, 지점이 마음에 안 들면 끌어 옮긴 뒤 다시 [분석]. [평면 지도 읽기](D03/03_평면_지도_읽기) 참고.
5. 측점 눈금을 눌러 지반선 횡단을 확인함. [측점 횡단](D03/04_측점_횡단) 참고.
6. 필요하면 [3D]로 지형과 노선을 입체로 봄. [3D 보기](D03/06_3D_보기) 참고.
7. 모든 연도에 노선이 있으면 [저장]을 누름. 저장 중에는 화면 전체가 잠깐 잠김.
1. 처음 열면 「받은 지형 없음」. [지형 범위 보기]로 받을 범위를 지도에서 확인하고 [이 범위 받기]를 누름. [지형 받기](D03/01_지형_받기) 참고.
2. [본선 긋기]를 누르고 시점에서부터 지도를 눌러 점을 이어 찍음. 마우스를 따라 길이와 기울기가 미리 보임. [본선 긋기](D03/02_본선_긋기) 참고.
3. 길이나 기울기를 정해 두고 긋고 싶으면 제약을 고름. [긋는 방식 넷](D03/03_긋는_방식_넷) 참고.
4. 본선이 종점에 닿으면 끝남. 같은 사업의 다른 선이 필요하면 [갈래]로 더함. [갈래](D03/04_갈래) 참고.
5. [구역 마크]로 선을 구역으로 나누고, 「구역 · 연도」 카드에서 구역마다 연도를 고름. [구역 마크와 연도](D03/05_구역_마크와_연도) 참고.
6. 필요하면 지도를 돌려 보거나 거리를 재고, [3D]로 지형과 선을 입체로 봄. [도구 여섯](D03/06_도구_여섯) · [3D 보기](D03/07_3D_보기) 참고.
7. [저장]을 누름. 저장하면 연도별 노선이 만들어져 다음 단계에서 읽음. [저장 · 초기화](D03/08_저장_초기화) 참고.
8. 다음 단계 [확정 · 내보내기](D04/00_설명서)로 넘어감.
> 주의: 노선 모양은 [분석]을 해야 생김. [분석]을 하지 않으면 [저장]이 눌리지 않음.
> 주의: 점을 찍고 구역을 나누고 연도를 고르는 것은 [저장]을 누를 때 서버에 남음. 다른 단계로 옮겨 갈 때도 바뀐 것이 있으면 저장한 뒤 옮겨 가며, 저장이 실패하면 이 화면에 머묾.
> 참고: 노선 후보를 찾는 엔진은 임도설계 노선 추천(B05)과 같음. 이 화면에서는 시작점과 끝점만 정해진 두 지점 사이를 구간별로 한 번씩 찾음. 자세한 방법은 [쓰인 방법과 근거](D03/20_쓰인_방법과_근거) 참고.
> 참고: 노선은 자동으로 찾지 않고 사용자가 직접 긋는 직선 꺾은선임. 아래쪽 횡단 패널과 예상 횡단은 없음. 3D 는 지형과 그은 선만 보여 줌.
+20 -12
View File
@@ -1,6 +1,6 @@
# 지형 받기
노선을 찾으려면 지점 둘레의 지형 자료가 필요함. 화면이 열리면 이 자료를 자동으로 확인하고 모자라면 받음.
미리보기 길이와 기울기를 재려면 사업 전체의 지형 자료가 필요함. 받을 범위를 지도에서 먼저 보고 [이 범위 받기]를 눌러 받음.
## 여는 길
@@ -8,23 +8,31 @@
![지형 카드](D03_01_terrain_card.webp)
그림 번호 — 1 지형 상태 한 줄(「받은 지형 안 · 연도 지형면 3/3」)
그림 번호 — 1 지형 상태 한 줄 · 2 [지형 범위 보기]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 화면을 열고 「지형」 카드의 글을 확인함. 「받은 지형 안」이면 그대로 분석할 수 있음. |
| 2 | 지점이 받은 지형 밖이면 지형 받기가 뒤에서 시작되고 카드에 진행률(%)이 보임. 끝날 때까지 기다림. |
| 3 | 지점을 옮겨 범위 밖이 되면 [범위 밖 — 더 받기]가 나타남. 눌러서 지형을 더 받음. |
| 4 | 받기가 끝나면 지도 배경과 등고선이 새로 그려짐. |
| 1 | 지형을 받기 전에는 「받은 지형 없음 — 범위를 보고 받으세요」가 보임. [지형 범위 보기]를 누름. |
| 2 | 「지형 받기 — 범위 미리보기」 창이 열림. 카카오 지도에 받을 범위(빨강) · 이미 받은 범위(초록) · 도엽(옅은 회색)이 그려짐. |
| 3 | 범위를 더 넓게 하려면 「여유」 칸에 m 를 넣고 [다시 보기]. |
| 4 | 범위가 맞으면 [이 범위 받기]를 누름. 창이 닫히고 카드에 진행률(%)이 보임. |
| 5 | 받기가 끝나면 카드가 「받은 지형 안」으로 바뀌고 지도 배경과 등고선이 새로 그려짐. |
![지형 받기 범위 미리보기](D03_02_extent_modal.webp)
그림 번호 — 1 여유 칸 · [다시 보기] · 2 범위 요약 한 줄 · 3 카카오 지도(범위 그림) · 4 [이 범위 받기]
## 보이는 것
- 「받은 지형 안 · 연도 지형면 N/M」 = M 개 연도 중 N 개 연도의 높이 자료가 준비됨.
- 지점이 받은 지형 밖이면 지도에서 그 지점에 빨간 고리와 점선 고리가 보이고, 카드에 「빨간 고리 지점이 받은 지형 밖입니다 — 더 받아야 분석합니다.」가 나옴. 이때 [분석]은 눌리지 않음.
- 받기에는 수치지형도(도엽) · 위성 사진 · 연도별 높이 자료가 들어 있음. 위성 사진을 못 받아도 받기가 멈추지 않음. 위성이 없으면 어두운 바탕에 지점과 노선만 보임.
- 지형 받기와 분석은 서버 뒤에서 도는 일이라, 화면을 닫았다 다시 열어도 도는 중이면 이어서 진행률을 보여 줌.
- 산림청이 아닌 계정에는 [범위 밖 — 더 받기]가 보이지 않음.
- 받을 범위 = 기준 지정의 시점 · 종점을 감싸는 상자에 여유를 더한 것. 여유 처음 값은 350 m 이고 300 ~ 5000 m 까지 쓸 수 있음. 이미 받은 범위가 있으면 그것과 합쳐서 받음.
- 요약 한 줄 = 「여유 350 m · 도엽 2매(새로 2) · 지형 칸 약 2.1백만」. 도엽은 수치지형도 조각이며 「새로」는 아직 못 받은 조각 수.
- 받기에는 수치지형도(도엽)와 위성 사진이 들어 있음. 위성 사진을 못 받아도 받기가 멈추지 않음. 위성이 없으면 어두운 바탕에 시점 · 종점과 선만 보임.
- 지형 받기는 서버 뒤에서 도는 일이라, 화면을 닫았다 다시 열어도 도는 중이면 이어서 진행률을 보여 줌.
- 지형은 사업 전체에 한 벌이고 연도로 나누지 않음. 열 때마다 저절로 다시 받지 않음.
- 받다가 실패하면 「지형 받기 실패 — 까닭」이 보이고 단추가 [다시 받기]로 바뀜.
- 그은 선이 받은 범위 밖으로 나가면 「그은 선이 받은 지형 밖으로 나갔습니다」가 보이고 [범위 밖 더 받기]가 나타남. 누르면 같은 미리보기 창이 선까지 포함한 범위로 열림.
- 산림청이 아닌 계정에는 [지형 범위 보기] · [범위 밖 더 받기]가 보이지 않음.
> 참고: [기준 지정](D02/00_설명서)에서 [>]로 넘어오면 지형 받기가 이미 시작되어 있을 수 있음.
> 참고: 받은 범위 밖에서는 미리보기의 기울기가 「지형 밖」으로 나오고 점을 찍을 수는 있어도 기울기 제약은 쓸 수 없음. 카카오 지도는 서비스에 등록된 주소에서만 그려짐.
@@ -0,0 +1,36 @@
# 본선 긋기
시점에서 점을 하나씩 찍어 종점까지 직선을 이어 가는 방법. 마우스를 따라 길이와 기울기가 미리 보임.
## 여는 길
- 노선 분석 화면 왼쪽 「그리기」 카드의 [본선 긋기]와 가운데 평면 지도.
![본선을 긋는 중](D03_03_draw_free.webp)
그림 번호 — 1 [본선 긋기] · [갈래] · [구역 마크] 단추 줄 · 2 긋는 방식 고르기 · 3 마우스를 따라 보이는 미리보기 · 4 안내 글
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [본선 긋기]를 누름. 단추 글자가 [긋기 끝]으로 바뀌고 선 색이 짙어짐. 처음에는 기준 지정의 시점에서 시작함. |
| 2 | 마우스를 움직이면 마지막 점에서 마우스까지 점선이 따라오고, 옆에 길이(m)와 기울기(%)가 보임. |
| 3 | 놓을 자리에서 누름. 그 자리에 점이 찍히고 선이 이어짐. 같은 방법으로 점을 이어 감. |
| 4 | 종점 가까이 가서 누르면 종점에 붙으며 본선이 끝남. 아래 「보이는 것」 참고. |
| 5 | 중간에 끝내려면 Enter 키 또는 [긋기 끝]. |
![종점에 붙는 모습](D03_07_snap_end.webp)
그림 번호 — 1 종점에 붙는다는 미리보기 · 2 안내 글
## 보이는 것
- 미리보기의 기울기는 원지반 기울기이며 오르막이 +, 내리막이 −. 받은 지형 밖이면 「지형 밖」으로 보임.
- 선마다 마디(점과 점 사이)에 길이와 기울기 글이 붙고, 측점은 20 m 마다 번호가 매겨져 시점이 0+0 부터 시작함.
- 종점 붙기: 본선만 해당. 마우스가 종점 둘레(약 12 화면점) 안에 오면 미리보기가 「종점에 붙음」으로 바뀌고, 누르면 종점에서 끝나 「본선이 종점에 닿았습니다.」 알림이 뜸. 제약이 있어도 종점 붙기가 먼저임.
- 본선이 종점에 닿으면 [본선 긋기]가 [본선 끝남]으로 바뀌고 눌리지 않음. 선을 더 그으려면 [갈래]를 씀.
- 키: Enter = 긋기 끝 · Esc = 이번에 그은 것을 모두 취소 · Backspace = 마지막 점 빼기 · Ctrl+Z / Ctrl+Y = 되돌리기 / 다시하기. 이 키들은 설정 창 단축키 표의 노선 분석 줄에도 있음.
- 지도 움직이기: 가운데 단추를 누른 채 끌면 이동, 휠은 확대 · 축소(방향은 설정 창 값을 따름). 왼쪽 끌기는 이동에 쓰지 않음 — 점 찍기와 겹치기 때문.
> 주의: 점은 [저장]을 누르기 전까지 이 브라우저 탭에만 남음. 같은 탭에서는 화면을 다시 열어도 남지만 다른 사람 화면에는 안 보임.
@@ -1,41 +0,0 @@
# 연도별 노선 고르기
연도마다 찾은 후보 넷 가운데 하나를 골라 예정노선으로 삼는 카드.
## 여는 길
- 노선 분석 화면 왼쪽 「연도별 노선」 카드. [분석]을 한 뒤 후보가 채워짐.
![연도별 노선 카드](D03_02_year_cards.webp)
그림 번호 — 1 연도 제목 줄 · 2 고른 후보(테두리가 진함) · 3 고르지 않은 후보
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 연도 제목 줄에서 그 연도 구간의 시작 · 끝 측점과 연장을 확인함. |
| 2 | 후보 카드 넷의 연장 · 최대 기울기 · 위반 개수를 견줌. |
| 3 | 쓸 후보 카드를 누름. 눌린 카드가 강조되고 평면의 노선과 누가 숫자가 바로 바뀜. |
| 4 | 연도마다 같은 방법으로 고름. |
![2028년 후보를 바꾼 모습](D03_03_pick_mode.webp)
그림 번호 — 1 2028년 제목 줄(구간 길이가 바뀜) · 2 새로 고른 「기울기 최소」 · 3 바뀐 평면 노선
## 보이는 것
| 후보 | 고르는 기준 |
| --- | --- |
| 영선 | 목표 기울기로 등고선을 비스듬히 건너가는 일정한 기울기 선 |
| 토공 최소 | 절토 + 성토 + 반입 + 사토 물량이 가장 적은 길 |
| 기울기 최소 | 최대 종단 기울기가 가장 작은 길 |
| 비중 계산 | 예상 · 토공 · 기울기 비용을 섞어 한 번 찾은 길 |
- 카드 글 = 「연장 · 최대 기울기(%) · 위반 개수」. 위반 = 기울기 기준을 지키지 못한 곳의 수.
- 제목 줄 = 「연도 · 시작 측점 ~ 끝 측점 (연장 m)」. 분석 전에는 「분석 전 — [분석]을 누르세요」가 보임.
- 「노선 없음」으로 회색인 카드 = 그 후보는 길을 찾지 못함. 누를 수 없고 마우스를 올리면 까닭이 보임.
- 고르지 않고 두면 영선 → 토공 최소 → 기울기 최소 → 비중 계산 차례로 처음 성공한 후보가 자동으로 잡힘.
- 모든 연도에 노선이 생기면 목록 끝에 「끝 … · 목표 … · 차이 …」 줄이 붙음. 등록 때 종료 누가거리를 넣었을 때만 나옴. [노선 누가거리](D01/05_누가거리) 참고.
> 주의: 고름은 [저장]을 누르기 전까지 이 브라우저 탭에만 남음. 탭을 닫으면 사라짐.
@@ -0,0 +1,44 @@
# 긋는 방식 넷
점을 찍을 때 길이나 기울기를 미리 정해 두는 방법. 자유 · 길이 고정 · 기울기 고정 · 둘 다 중에서 고름.
## 여는 길
- 노선 분석 화면 왼쪽 「그리기」 카드의 네 칸짜리 고르기와 그 아래 「길이」 · 「기울기」 칸.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 「그리기」 카드에서 긋는 방식을 고름. 고른 방식에 필요한 칸만 켜지고 나머지는 흐려짐. |
| 2 | 「길이」(m) · 「기울기(± 같음)」(%) 칸에 값을 넣음. 처음 값은 길이 20 m · 기울기 9 %. |
| 3 | [본선 긋기](또는 [갈래])로 긋기 시작해 마우스를 움직여 미리보기를 보고 누름. |
## 보이는 것
| 방식 | 마우스 따라 보이는 것 | 켜지는 칸 |
| --- | --- | --- |
| 자유 | 마우스 자리 그대로 점이 놓임. 길이와 기울기는 참고로만 보임 | 없음 |
| 길이 고정 | 마지막 점에서 마우스 방향으로 입력한 길이만큼 떨어진 자리에 점이 놓임 | 길이 |
| 기울기 고정 | 마지막 점에서 마우스 방향으로 가며 원지반 기울기가 입력한 값이 되는 첫 자리에 점이 놓임 | 기울기 |
| 둘 다 | 마지막 점에서 입력한 길이만큼 떨어진 원 위에서 기울기가 입력한 값이 되는 자리 중 마우스에 가까운 곳에 점이 놓임(컴퍼스처럼 도는 모양) | 길이 · 기울기 |
![길이 고정 — 40 m](D03_04_constraint_length.webp)
그림 번호 — 1 긋는 방식 고르기(길이 고정) · 2 길이 칸(40 m) · 3 미리보기(마우스 방향 40.0 m)
![기울기 고정 — 9 %](D03_05_constraint_slope.webp)
그림 번호 — 1 긋는 방식 고르기(기울기 고정) · 2 기울기 칸(9 %) · 3 미리보기(기울기 +9.0 %)
![둘 다 — 길이 20 m · 기울기 9 %](D03_06_constraint_both.webp)
그림 번호 — 1 긋는 방식 고르기(둘 다) · 2 길이 · 기울기 칸 · 3 미리보기(원 위 후보 중 마우스에 가까운 자리)
- 기울기 칸은 부호를 따지지 않음. 9 를 넣으면 오르막 +9 % 와 내리막 −9 % 가 같은 값으로 취급되고, 미리보기에는 실제 오르막(+) · 내리막(−)이 표시됨.
- 마우스 방향에 그 기울기가 되는 자리가 없으면 「이 방향엔 ±9.0 % 자리 없음」으로 보이고 점이 찍히지 않음. 「둘 다」에서는 「반지름 40.0 m 원 위에 ±9.0 % 자리 없음」으로 보임. 누르면 「여기에는 점을 찍을 수 없습니다」 안내만 나옴.
- 기울기 고정 · 둘 다는 받은 지형이 있어야 씀. 지형 밖에서는 자리를 못 찾음.
- 길이 칸에 0 이하를 넣으면 「0 보다 큰 수」, 기울기 칸에 숫자가 아닌 것을 넣으면 「숫자」라는 안내가 칸 아래에 나옴.
- 종점 붙기는 제약보다 먼저 적용됨. 종점 둘레에서는 제약과 상관없이 종점에 붙음.
> 참고: 길이 처음 값 20 m 는 측점 간격(20 m)과 같게 맞춘 값이고, 기울기 처음 값 9 % 는 간선임도 설계속도 20 km/h 일반지형의 종단기울기 상한임. 둘 다 [사용자 확정 전 값](D03/30_사용자_확정_전_값)에 있음.
@@ -1,39 +0,0 @@
# 평면 지도 읽기
위성 사진 위에 지점 · 노선 · 측점을 겹쳐 보여 주는 가운데 지도. 지점을 끌어 옮기고, 고른 노선의 꺾임점도 고칠 수 있음.
## 여는 길
- 노선 분석 화면의 가운데 위쪽 큰 지도.
![평면 지도](D03_04_plan_map.webp)
그림 번호 — 1 평면 지도(2028년 20+0 측점을 누른 모습)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 굵은 선(주황)으로 연도별로 고른 후보를 이은 예정노선을 확인함. |
| 2 | 선 위 눈금 글(0+0 · 5+0 · 10+0 …)로 측점(20 m 간격)을 읽음. |
| 3 | 지점이 마음에 안 들면 지점(원)을 마우스 왼쪽 단추로 누른 채 끌어 옮김. |
| 4 | 옮긴 뒤 [분석]을 다시 눌러 새 지점으로 노선을 찾음. |
| 5 | 노선 모양만 바꾸려면 흰 네모(꺾임점)를 끌어 옮김. [꺾임점 고치기](D03/07_꺾임점_고치기) 참고. |
| 6 | 지도 바탕을 끌어 옮기고 휠로 확대 · 축소함. |
## 보이는 것
- **지점(원)의 색** — 초록 = 첫 지점(시점) · 빨강 = 마지막 지점(종점) · 파랑 = 연도가 바뀌는 중간 지점.
- **선** — 굵은 선 = 고른 후보. 흰 점선(옅음) = 고르지 않은 다른 후보. 분석 전에는 지점끼리 잇는 점선만 보임.
- **등고선** = 도엽(수치지형도) 등고선. 노란 선과 노란 숫자(높이). 확대하면 더 촘촘히 보임.
- **흰 네모 · 주황 점 · R 숫자** = 고른 노선의 꺾임점 · 곡선 손잡이 · 곡선 반지름(산림청 계정만 보임).
- 누른 측점은 보라색 고리로 표시됨.
- **누가** = 측점 번호. 앞 연도 끝 = 다음 연도 시작으로 이어서 셈. 시작 값은 등록 때 정한 노선 시작 누가거리.
- 끌기를 마치면 그 지점 앞 · 뒤 연도의 분석 결과가 비워지고 횡단 판에 「지점을 옮겼습니다 — [분석] 뒤 측점을 누르세요.」가 나옴.
- 끝점은 이웃 연도의 시작점과 한 점으로 묶여 있어 함께 움직임.
- 손이 조금 떨리는 정도(몇 픽셀)의 움직임은 끌기로 치지 않고 단순 누름으로 처리함.
- 산림청이 아닌 계정은 지점을 끌 수 없음. 보기만 가능.
> 주의: 옮긴 위치는 [저장] 전까지 이 브라우저 탭에만 임시로 남음(새로 고침해도 유지, 탭을 닫으면 사라짐). [저장]을 눌러야 정본이 바뀜.
> 참고: 평면에는 노견 · 절토 · 성토선 · 종단도 · 배수유역 · 구조물이 없음. 지반 · 노선 중심선 · 측점만 보임.
+29
View File
@@ -0,0 +1,29 @@
# 갈래
본선의 한 점에서 갈라지는 선을 더하는 방법. 갈래는 본선과 따로 측점을 셈.
## 여는 길
- 노선 분석 화면 왼쪽 「그리기」 카드의 [갈래].
![갈래 시작](D03_08_branch.webp)
그림 번호 — 1 [갈래] 단추(눌린 모습) · 2 갈래를 시작한 점 · 3 안내 글
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 본선을 먼저 그어 둠. 선이 없으면 [갈래]가 흐려서 눌리지 않음. |
| 2 | [갈래]를 누름. 안내가 「갈래를 시작할 선 위 점을 누르세요.」로 바뀜. |
| 3 | 갈래가 갈라질 선 위의 점을 누름. 꺾임점 가까이를 누르면 그 꺾임점에서, 선 중간을 누르면 그 자리에 꺾임점이 새로 생기면서 시작함. |
| 4 | 곧바로 긋기 상태가 됨. 본선과 같은 방법(점 찍기 · 긋는 방식 · Enter · Esc · Backspace)으로 이어 그음. |
| 5 | Enter 로 끝냄. 갈래를 더 만들려면 [갈래]를 다시 누름. |
## 보이는 것
- 갈래는 본선뿐 아니라 이미 그은 갈래의 점에서도 시작할 수 있음.
- 갈래의 첫 점은 붙은 선의 점과 같은 자리이고, 측점은 갈래마다 0+0 부터 셈. 「구역 · 연도」 카드에는 「갈래 1」 · 「갈래 2」 줄이 따로 생김.
- 점을 하나도 찍지 않고 끝낸 갈래는 저절로 사라짐.
- 갈래는 종점에 붙지 않음. 종점 붙기는 본선만 해당됨.
- 갈래는 같은 연도의 구역으로도, 다른 연도의 구역으로도 정할 수 있음. [구역 마크와 연도](D03/05_구역_마크와_연도) 참고.
@@ -1,35 +0,0 @@
# 측점 횡단
평면에서 측점을 누르면 그 자리의 지반선과 예상 횡단이 아래 판에 그려짐.
## 여는 길
- 노선 분석 화면 아래쪽 「횡단」 판. 평면 지도의 측점 눈금을 누르면 채워짐.
![측점 횡단](D03_05_station_cross.webp)
그림 번호 — 1 제목 줄(연도 · 측점 이름 · 중심 지반고 · 예상 절토 · 성토 ㎡) · 2 지반선 + 예상 횡단 그림
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 평면 지도에서 확인할 측점 눈금(예: 20+0)을 누름. |
| 2 | 아래 판의 제목 줄에서 연도 · 측점 · 중심 지반고 · 예상 절토 · 성토 넓이(㎡)를 읽음. |
| 3 | 그림에서 회색 지반선과 주황 예상 횡단선(노면 · 측구 · 절토 · 성토 비탈)을 확인함. |
| 4 | 판 위쪽 「횡단」 줄을 누르면 판이 접히고, 다시 누르면 펼쳐짐. |
![접힌 횡단 판](D03_06_cross_fold.webp)
그림 번호 — 1 「횡단」 줄(접힌 상태)
## 보이는 것
- 제목 줄 = 「연도 · 측점 이름 · 중심 지반고 · 예상(표준 횡단 기본값 · 계획고 = 지반고) 절토 ㎡ · 성토 ㎡」.
- 그림 = 노선 중심에서 좌우 20 m 안의 지반(회색) + 예상 횡단(주황 · 「기본 계획 횡단」). 비탈이 20 m 안에서 지반과 안 만나면 만날 때까지 넓혀 그림.
- 예상 횡단 = 표준 횡단의 프로그램 기본값(노폭 3.0 m · 노견 0.5 m · 리핑암 · 산쪽 절토 · 일반 측구 · 성토 1:1.2) · 계획고 = 측점 중심 지반고 · 곡선 확폭 없음. 종단 설계 전 모양이라 실제 설계 횡단과 다름.
- 아직 측점을 누르지 않았으면 「평면에서 측점을 누르면 그 자리 지반선 · 예상 횡단이 보입니다.」가 보임.
- 노선이 없는 연도의 측점은 누를 수 없음. 지점을 옮긴 뒤에는 다시 [분석]을 해야 함.
- 이 측점 횡단은 지형 자료의 평활본에서 읽은 값이라 실제 측량 단면과 다를 수 있음.
> 참고: 횡단 판을 접으면 평면 지도가 아래까지 넓어짐.
@@ -0,0 +1,39 @@
# 구역 마크와 연도
그은 선을 구역(조각)으로 나누고, 구역마다 시공 연도를 고르는 방법. 갈래도 같은 방법으로 나눔.
## 여는 길
- 노선 분석 화면 왼쪽 「그리기」 카드의 [구역 마크]와 그 아래 「구역 · 연도」 카드.
![구역 마크 모드](D03_09_zone_marks.webp)
그림 번호 — 1 [구역 마크] 단추(눌린 모습) · 2 안내 글 · 3 평면 지도(마름모가 구역 마크)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 선을 그어 둠. 선이 없으면 [구역 마크]가 흐려서 눌리지 않음. |
| 2 | [구역 마크]를 누름. |
| 3 | 구역을 나눌 선 위 자리를 누름. 그 자리에 마크(마름모)가 놓이고 선이 두 구역으로 나뉨. 갈래도 같은 방법으로 누름. |
| 4 | 마크를 지우려면 마크 근처를 오른쪽 단추로 누름. 두 구역이 하나로 합쳐짐. |
| 5 | 「구역 · 연도」 카드에서 구역마다 연도를 고름. |
| 6 | 마크 놓기를 마치려면 Esc 또는 [구역 마크]를 다시 누름. |
![구역 · 연도 카드](D03_10_pieces_years.webp)
그림 번호 — 1 카드 제목 · 2 본선 머리줄(선 이름 · 길이) · 3 구역 한 줄의 연도 고르기 · 4 갈래 머리줄 · 5 갈래 구역의 연도 고르기
## 보이는 것
- 카드는 선마다 머리줄(「본선 · 1046.7 m」 · 「갈래 1 · 295.6 m」)과 구역 줄로 이뤄짐. 구역 줄 = 「0+0 ~ 19+0 (380.0 m)」 꼴의 측점 범위 · 길이와 연도 고르기.
- 구역 이름은 「선 이름 + 측점 범위」(예: 본선 0+0~19+0)이며, 업체 지정 · 연결 · 가져오기에서도 같은 이름으로 불림.
- 새 구역의 처음 연도는 사업 연도 시작 해. 고를 수 있는 연도는 시작 해부터 10년과 이미 쓴 연도임.
- 같은 연도에 구역이 여럿이어도, 본선과 갈래가 같은 연도여도 됨. 연도는 구역마다 따로 정함.
- 구역 연도는 지도에도 「2027년」처럼 구역 가운데에 보임.
- 마크끼리나 선 끝과 1 m 안으로 가까우면 마크가 놓이지 않음.
- 구역을 나누면 앞 구역이 원래 구역의 이름표(조각 id)를 지니고 새 구역은 새 이름표를 받음. 이미 업체를 지정한 구역을 합쳐서 없애면 저장이 막힘.
- 연도를 바꾸는 것도 되돌리기 · 다시하기 한 걸음으로 쌓임.
> 참고: 사업 연도 끝은 입력하지 않음. [저장]할 때 구역 연도 중 가장 늦은 해가 끝 연도가 됨.
@@ -1,38 +0,0 @@
# 분석 · 저장 · 3D 단추
왼쪽 패널 맨 아래 단추 줄. 노선 찾기([분석]) · 확정 저장([저장]) · 입체 보기([3D])를 함.
## 여는 길
- 노선 분석 화면 왼쪽 패널 맨 아래.
![단추 줄](D03_07_buttons.webp)
그림 번호 — 1 [?] 가이드 · 2 [<] 이전 단계 · 3 [>] 다음 단계 · 4 [분석] · 5 [저장] · 6 [3D]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [분석]을 누름. 연도 구간마다 후보 넷을 찾으며 진행률이 「지형」 카드 자리에 보임. |
| 2 | 입력(지점 · 기준 · 지형)이 이전과 같으면 저장된 결과를 그대로 불러와 바로 끝남. |
| 3 | [연도별 노선 고르기](D03/02_연도별_노선_고르기)로 연도마다 후보를 고름. |
| 4 | 모든 연도에 노선이 있으면 [저장]을 누름. |
| 5 | [3D]로 입체로 확인함. [3D 보기](D03/06_3D_보기) 참고. |
| 6 | 다음 단계로 가려면 [>]를 누름. |
## 보이는 것
| 단추 | 하는 일 |
| --- | --- |
| [분석] | 연도 구간마다 노선 후보 넷을 찾음. 받은 지형 밖에 지점이 있으면 눌 수 없음 |
| [저장] | 연도별로 고른 후보를 정본으로 저장함. 끌어 옮긴 지점도 이때 함께 저장됨. 어느 연도든 노선이 없으면 눌 수 없고 마우스를 올리면 안내가 보임 |
| [3D] | 지형과 노선을 입체로 보는 창을 엶. 노선이 하나라도 있어야 눌 수 있음 |
- 저장하면 「예정노선을 저장했습니다.」 알림이 뜸.
- [저장]은 노선 모양을 화면에서 받지 않고 고른 후보 이름만 서버에 보냄. 서버가 저장된 분석 결과로 노선을 다시 이어 붙여 저장하므로, [분석]을 하지 않으면 「분석 저장본이 없습니다 — [분석]을 먼저 하세요.」로 막힘.
- 산림청이 아닌 계정에는 [분석] · [저장]이 보이지 않음. 보기만 가능.
> 주의: 저장 중에는 화면 전체가 잠깐 잠김. 끝날 때까지 기다림.
> 참고: [분석]에 쓰는 기준값(기울기 상한 · 최소 곡선 반지름 등)은 등록 때 정한 임도 종류와 설계속도로 자동 정해짐. 이 화면에 칸은 없음. [사용자 확정 전 값](D03/30_사용자_확정_전_값) 참고.
-31
View File
@@ -1,31 +0,0 @@
# 3D 보기
지형과 연도별 노선 · 예상 코리도를 입체로 보는 창.
## 여는 길
- 노선 분석 화면 왼쪽 패널 맨 아래 [3D]. 노선이 하나라도 있어야 눌림.
![3D 보기 창](D03_08_3d_modal.webp)
그림 번호 — 1 연도 고르는 칸 · 2 「예상 코리도」 켬끔 · 3 3D 화면
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [3D]를 누름. 「3D 보기 — 지형 + 노선」 창이 열리고 지형을 불러오는 동안 진행 표시가 돎. |
| 2 | 창 위쪽 연도 칸으로 볼 연도를 바꿈. 한 번에 한 연도씩 보임. |
| 3 | 마우스로 돌리고 휠로 확대 · 축소해 노선 둘레를 살핌. |
| 4 | 「예상 코리도」 칸을 끄면 원래 지형과 노선만, 켜면 예상 노면 · 절토 · 성토면이 보임. |
| 5 | 다 보았으면 창 오른쪽 위 [닫기]를 누름. |
## 보이는 것
- 그 연도의 지형(높이에 따라 색이 달라짐)과 고른 후보의 노선, 측점 막대가 보임. 지형 위의 가는 하늘색 선이 노선.
- 예상 코리도 = 측점 횡단 판과 같은 예상 횡단(표준 횡단 기본값 · 계획고 = 지반고)을 측점마다 이은 노면 · 측구 · 절토 · 성토면. 처음 열 때 켜져 있음.
- 구조물은 3D 에도 없음.
- 평면에서 측점을 눌러 둔 연도가 있으면 그 연도가 먼저 열림.
- 창을 닫으면 3D 화면에 쓰던 자원이 정리됨.
> 참고: 지형이 노선보다 훨씬 넓게 받아져 있어 노선이 작게 보일 수 있음. 확대해서 볼 것.
@@ -0,0 +1,39 @@
# 도구 여섯
지도 오른쪽 위의 도구 줄. 되돌리기 · 다시하기 · 3D · 좌회전 · 우회전 · 거리재기.
## 여는 길
- 노선 분석 화면 평면 지도 오른쪽 위.
![도구 줄](D03_11_tools.webp)
그림 번호 — 1 되돌리기 · 2 다시하기 · 3 3D 보기 · 4 왼쪽으로 돌림 · 5 오른쪽으로 돌림 · 6 거리재기
## 단계
| 도구 | 하는 일 |
| --- | --- |
| 되돌리기(Ctrl+Z) | 마지막 한 걸음을 취소함. 한 걸음 = 점 하나 · 갈래 하나 · 마크 하나 · 연도 하나 바꿈 |
| 다시하기(Ctrl+Y) | 되돌린 걸음을 다시 함 |
| 3D 보기 | 지형과 그은 선을 입체로 봄. [3D 보기](D03/07_3D_보기) 참고 |
| 왼쪽으로 돌림 · 오른쪽으로 돌림 | 지도를 15° 씩 돌림. 누를 때마다 15° 더 돌아감 |
| 거리재기 | 지도에서 두 점의 거리 · 기울기 · 높이 차를 잼 |
![지도를 돌린 모습](D03_12_rotate.webp)
그림 번호 — 1 왼쪽으로 돌림 · 2 오른쪽으로 돌림(왼쪽으로 세 번 돌려 45° 돌아간 지도)
![거리재기](D03_13_measure.webp)
그림 번호 — 1 거리재기(켜진 모습) · 2 잰 결과(길이 · 기울기 · 높이 차)
## 보이는 것
- 되돌리기 · 다시하기는 이 화면에서 한 걸음마다 쌓이며, [저장] · [초기화]를 하면 비워짐. 쌓인 것이 없으면 흐려짐.
- 3D 는 받은 지형이 있고 2점 이상인 선이 있을 때만 켜짐.
- 지도를 돌려도 글은 바로 서서 읽힘. 돌린 채로 점을 찍어도 눌린 자리에 찍힘.
- 거리재기 사용법: 단추를 켜고 지도에서 두 점을 차례로 누름. 둘째 점을 누르면 점선 위에 「441.4 m · +3.2 % · Δh +14.3 m」 꼴로 길이 · 원지반 기울기(+ 오르막) · 높이 차가 보임. 셋째 누름은 새로 재기 시작이고, Esc 는 지우고 거리재기를 끔.
- 거리재기를 켜면 긋기가 꺼지고, 긋기를 시작하면 거리재기가 꺼짐. 잰 값은 저장되지 않음.
- 받은 지형 밖에서는 기울기가 「지형 밖」으로 보임.
- 마우스: 가운데 단추 끌기 = 지도 이동, 휠 = 확대 · 축소. 방향은 설정 창에서 바꿈. 왼쪽 끌기는 이동에 쓰지 않음.
+28
View File
@@ -0,0 +1,28 @@
# 3D 보기
받은 지형 위에 그은 선을 입체로 보는 창.
## 여는 길
- 노선 분석 화면 지도 오른쪽 위 도구 줄의 [3D 보기].
![3D 보기](D03_14_3d.webp)
그림 번호 — 1 보고 싶은 선 고르기(본선 · 갈래) · 2 3D 화면
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | [3D 보기]를 누름. 「3D 보기 — 지형 + 그은 선」 창이 열리고 「3D 지형을 불러오는 중…」이 잠깐 보임. |
| 2 | 지형이 나오면 위쪽 고르기에서 보고 싶은 선(본선 · 갈래 N)을 고름. |
| 3 | 마우스로 돌려 보고 휠로 확대 · 축소함. |
| 4 | 닫으려면 [닫기]. |
## 보이는 것
- 지형 위에 고른 선이 하늘색으로 얹히고, 선 위에 측점 표시(20 m 마다)가 놓임.
- 보이는 것은 지형과 그은 선뿐임. 노견 · 절성토면 · 구조물 · 예상 횡단은 없음.
- 받은 지형이 없거나 선이 한 점뿐이면 [3D 보기]가 흐려서 눌리지 않음.
- 저장하지 않은 선도 보임.
- 왼쪽 위 방위 표시로 방향을 확인함.
@@ -1,40 +0,0 @@
# 꺾임점 고치기
추천된 노선의 꺾임점(IP)을 평면 지도에서 직접 옮기고, 넣고, 지우는 방법. 곡선 반지름(R)도 손잡이로 바꿈.
## 여는 길
- 노선 분석 화면의 가운데 평면 지도. 고른 후보 노선 위에 흰 네모(꺾임점) · 주황 점(곡선 손잡이) · 「R 숫자」 글이 보임.
![꺾임점 고치기](D03_09_ip_edit.webp)
그림 번호 — 1 평면 지도(꺾임점 하나를 옮긴 모습) · 2 「꺾임점 고침 — [저장] 전」 줄과 [원래 노선] · 3 고친 후보 카드(연장이 바로 바뀜) · 4 [되돌리기]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 「연도별 노선」 카드에서 고칠 후보를 먼저 고름. 꺾임점은 고른 후보에만 보임. |
| 2 | 흰 네모(꺾임점)를 마우스 왼쪽 단추로 누른 채 끌어 옮김. 노선 · 연장 · 측점이 바로 다시 그려짐. |
| 3 | 꺾임점을 더 넣으려면 꺾임점 사이 선 위를 두 번 누름. |
| 4 | 꺾임점을 빼려면 흰 네모를 마우스 오른쪽 단추로 누름. |
| 5 | 곡선을 넓히거나 좁히려면 주황 점(곡선 시작 · 끝)을 끌어 옮김. 그쪽 직선 각도와 R 이 함께 바뀜. |
| 6 | 잘못 고쳤으면 [되돌리기](또는 Ctrl+Z)로 한 걸음씩 되돌림. 처음 노선으로 돌리려면 [원래 노선]. |
| 7 | 측점을 눌러 둔 상태면 아래 횡단도 고친 노선으로 바로 바뀜. |
| 8 | 다 고쳤으면 [저장]을 누름. 서버가 꺾임점으로 노선을 다시 그어 기울기 · 위반 수를 셈. |
## 보이는 것
- **흰 네모** = 꺾임점. 테두리가 빨가면 그 자리 곡선이 기준(최소 곡선 반지름 · 배향곡선)에 못 미침.
- **주황 점** = 곡선 시작 · 끝(손잡이). **R 숫자** = 그 곡선의 반지름(m). 기준 미달이면 붉은 글.
- 고친 연도에는 「꺾임점 고침 — [저장] 전」 줄이 보이고, 저장 뒤에는 「꺾임점 고침(저장됨)」으로 바뀜.
- 고친 후보 카드는 「연장 ○○ m · 기울기 · 위반 = 저장 때 셈」으로 연장만 바로 보임. [저장] 뒤에 최대 기울기 · 위반 수가 채워짐.
- 연장이 바뀌면 그 뒤 연도의 시작 · 끝 측점도 함께 밀림.
> 주의: 처음 · 끝 꺾임점은 연도가 바뀌는 지점이라 여기서 못 옮김. 지점(원)을 끌어 옮기고 다시 [분석]함. 지점을 옮기면 그 앞 · 뒤 연도의 꺾임점 고침은 버려짐.
> 주의: 곡선 반지름은 법정 최소 곡선 반지름 밑으로 내려가지 않음. 옮기다가 지키던 곡선이 기준 밑으로 떨어지면 그 걸음은 막히고 까닭이 알림으로 뜸.
> 참고: 고친 값은 [저장] 전까지 이 브라우저 탭에만 임시로 남음(새로 고침해도 유지). 다른 후보를 골랐다가 다시 고르면 고친 노선이 그대로 돌아옴. [분석]을 다시 해 분석 결과가 바뀐 연도는 고침이 버려짐.
> 참고: 산림청이 아닌 계정에는 꺾임점 · 손잡이가 보이지 않음. 보기만 가능.
@@ -0,0 +1,37 @@
# 저장 · 초기화
왼쪽 패널 맨 아래 단추 줄 — [?] · [<] · [>] · [저장] · [초기화]와 저장 · 초기화 때 일어나는 일.
## 여는 길
- 노선 분석 화면 왼쪽 패널 맨 아래.
![단추 줄](D03_15_buttons.webp)
그림 번호 — 1 [?] 가이드 · 2 [<] 이전 단계(기준 지정) · 3 [>] 다음 단계(확정 · 내보내기) · 4 [저장] · 5 [초기화]
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 본선 · 갈래를 긋고 구역 연도까지 정함. |
| 2 | [저장]을 누름. 화면 전체가 잠깐 잠기고 서버가 길이 · 측점 · 구역 · 연도를 다시 셈. 「예정노선을 저장했습니다.」 알림이 뜸. |
| 3 | 저장이 끝나면 [>]로 [확정 · 내보내기](D04/00_설명서)로 감. 바뀐 것이 있는 채 [>]를 누르면 저장한 뒤 넘어감. |
| 4 | 처음부터 다시 하려면 [초기화]를 누름. 확인 창이 열림. |
![초기화 확인 창](D03_16_reset_ask.webp)
그림 번호 — 1 확인 문구 · 2 [취소] · 3 [초기화]
## 보이는 것
- [저장]은 바뀐 것이 있을 때만 켜짐. 바뀐 것이 없으면 흐림.
- 저장하면 구역 연도로 연도별 노선이 만들어지고, 사업 연도 끝은 구역 연도 중 가장 늦은 해가 됨. 서버가 저장된 선으로 다시 셈하므로 화면 값을 그대로 받아 적지 않음.
- 저장에 실패하면 「저장하지 못했습니다 — 까닭」이 뜨고 그은 것은 그대로 남음. 구역에 업체를 이미 지정했다면 그 구역을 없애는 저장은 막힘.
- 단계 아이콘 · [<] · [>] · 머리 ☰ 메뉴 · 브라우저 뒤로로 떠날 때도 바뀐 것이 있으면 저장한 뒤 옮겨 감. 저장이 실패하면 이 화면에 머묾.
- [초기화] 확인 창: 「그은 선 · 갈래 · 구역을 모두 지우고 시점 · 종점만 남깁니다. 저장된 노선도 바뀝니다.」 [초기화]를 누르면 시점 · 종점만 남은 빈 선으로 저장되고 「시점 · 종점만 남겼습니다.」 알림이 뜸. [취소]면 아무것도 바뀌지 않음.
- 산림청이 아닌 계정은 [저장] · [초기화]가 보이지 않음.
> 주의: [초기화]는 서버에 저장된 노선까지 비움. 이미 업체를 지정한 구역이 있으면 막힐 수 있음.
> 참고: 옛 방식(자동 후보)으로 저장해 둔 예정노선은 열 때 선과 구역으로 바꿔 보여 줌.
@@ -1,54 +1,40 @@
# 쓰인 방법과 근거
![분석 결과 화면](D03_00_overview.webp)
![노선 분석 화면](D03_00_overview.webp)
## 노선을 찾는 방법
## 선을 만드는 방법
- 연도마다 그 연도의 시점과 종점 두 점 사이를 한 번씩 찾음. 연도 사이의 경계점은 옮기지 않으므로 앞 연도 끝과 다음 연도 시작이 정확히 맞물림.
- 찾는 엔진은 임도설계 「노선 추천」(B05)과 같은 엔진임. 지형 높이 자료(연도별 높이 격자)에서 경사를 읽고, 기울기 · 곡선 · 하천 이격을 지키는 길을 찾아 곡선까지 맞춘 중심선을 냄.
- 후보는 네 갈래로 같은 입력에서 각각 구함.
- 선은 자동으로 찾지 않고 사용자가 점을 찍어 직선으로 이음. 본선은 기준 지정의 시점에서 시작하고 종점에서 끝나며, 갈래는 기존 선의 점에서 갈라짐.
- 구역 마크는 선 위 거리(m)로 기록됨. 마크 사이 구간이 구역(조각)이고, 구역마다 연도를 가짐. 구역 이름은 「선 이름 + 측점 범위」임.
- 측점은 선마다 20 m 간격으로 0+0 부터 셈. 갈래도 0+0 부터 따로 셈.
- 선의 높이는 저장하지 않고, 필요할 때 받은 지형에서 읽음.
| 후보 | 고르는 기준 |
| --- | --- |
| 영선 | 목표 기울기로 등고선을 비스듬히 건너가는 일정한 기울기 선. 목표 기울기를 따로 주지 않으므로 기울기 상한을 목표로 삼음 |
| 토공 최소 | 후보 길 중 절토 + 성토 + 반입 + 사토 물량이 가장 적은 길 |
| 기울기 최소 | 후보 길 중 최대 종단 기울기가 가장 작은 길(같으면 평균 기울기가 작은 길) |
| 비중 계산 | 예상 · 토공 · 기울기 세 가지 비용을 비중으로 섞어 한 번 찾은 길. 비중은 기본값 50 : 25 : 25(%) 그대로 씀 |
## 미리보기 값을 셈하는 방법
- B05 의 다른 후보(예상노선 추적 · 안전 우선 · 계류 횡단 최소 · 공사비 어림 최소)는 이 화면에서 쓰지 않음.
- 예상노선 추적은 두 점 사이가 직선이 되어 의미가 없어 뺐음.
## 추천 기준(자동으로 정해지는 값)
- 화면에 기준 칸이 없음. 프로젝트 등록 때 정한 「임도 종류」와 「설계속도」로 임도 법정 함수가 값을 냄.
- 설계속도는 종류별로 고를 수 있는 값이 정해져 있음. 작업임도는 20 km/h 하나, 간선 · 산불진화 임도는 20 · 30 · 40 km/h 중 선택. 지정하지 않으면 20 km/h.
- 지형 구분은 등록 칸이 없어 가장 완화된 쪽(특수지형)으로 고정해 씀.
| 설계속도 | 종단 기울기 상한 | 최소 곡선 반지름 |
| --- | --- | --- |
| 20 km/h | 14 % | 12 m |
| 30 km/h | 12 % | 20 m |
| 40 km/h | 10 % | 40 m |
- 하천 이격 = 100 m. 도엽 하천선 중 소하천 · 지방하천 · 국가하천만 대상.
- 탐색 복도 반폭 = 300 m. 두 지점을 이은 선 양옆 300 m 안에서만 길을 찾음. 100 m · 200 m 로는 기준을 못 지키는 곳이 남아 300 m 로 넓힘.
- 위반 개수 = 기울기 기준을 지키지 못한 곳의 수. 지형상 길이 없을 때만 어쩔 수 없이 기준을 넘은 길이 나옴.
- 길이 = 마지막 점에서 마우스(또는 제약으로 정해진 점)까지 평면 거리.
- 기울기(%) = (끝점 지반고 − 시작점 지반고) ÷ 평면 거리 × 100. 오르막이 +.
- 길이 고정 = 마우스 방향으로 입력한 길이만큼 간 점.
- 기울기 고정 = 마우스 방향 반직선을 따라 가며 기울기 크기가 입력값이 되는 첫 자리(최대 1000 m 까지 살핌).
- 둘 다 = 입력한 길이를 반지름으로 한 원 위에서 기울기 크기가 입력값이 되는 후보를 모두 구하고, 마우스에 가장 가까운 후보.
- 셈 규칙은 화면과 서버가 같은 규칙으로 따로 셈하며, 한쪽만 고치지 않도록 짝으로 관리하고 시험으로 대조함.
## 쓰는 지형 자료
- 수치지형도 도엽(축척 1/5,000)을 지점 둘레 3×3 장씩 받아 한 장으로 병합함. 이미 받은 도엽은 다시 받지 않고, 옛 도엽도 지우지 않음.
- 수치지형도 도엽(축척 1/5,000)을 받을 범위에 걸리는 만큼 받아 한 장으로 병합함. 이미 받은 도엽은 다시 받지 않고, 옛 도엽도 지우지 않음.
- 도엽에 글자 코드 정보가 없으면 한글 윈도우 표준(cp949)으로 읽음.
- 위성 지도(VWorld)는 배경 그림용. 이미 받은 범위가 덮으면 건너뜀.
- 연도별 높이 격자는 그 연도 구간 상자 + 탐색 복도 300 m + 여유 50 m 범위로 만듦. 지점이 격자 가장자리에서 300 m 안쪽에 있어야 「받은 지형 안」 으로 판정함.
- 받을 범위를 정하는 미리보기와 받기 전 범위 그림은 카카오 지도를 씀.
- 도엽 등고선을 평활화한 높이 격자라 실제 측량 지형과 차이가 있을 수 있음.
- 지형은 사업 전체에 한 벌이며, 연도를 나누기 전에 받음.
## 저장 방식
- 같은 입력(지점 · 기준 · 지형)이면 이전에 계산한 결과를 그대로 써서 [분석] 이 빨리 끝남. 지점이나 기준이 바뀌면 그 연도만 다시 계산함.
- [저장] 은 서버가 저장된 분석 결과에서 고른 후보를 다시 이어 정본으로 기록함. 화면에서 계산한 값을 그대로 받아 적지 않음.
- 누가 계산, 후보 고름, 중심선 잇기는 화면과 서버가 같은 규칙으로 따로 셈. 한쪽만 고치지 않도록 짝으로 관리하며 시험으로 대조함.
- 그은 선 · 마크 · 연도는 [저장]을 누르기 전까지 이 브라우저 탭에만 남음(자동 저장 없음).
- [저장]하면 서버가 선과 구역으로 길이 · 측점 · 구역 경계를 다시 셈하고, 구역 하나마다 한 줄, 연도마다 한 줄을 만들어 다음 단계가 읽음. 화면에서 계산한 값을 그대로 받아 적지 않음.
- 사업 연도 끝은 구역 연도 중 가장 늦은 해로 정해짐.
- [초기화]는 시점 · 종점만 남은 빈 선으로 저장함. 옛 자동 후보 방식으로 저장한 노선은 지우지 않고, 열 때 선과 구역으로 바꿔 보여 줌.
## 한계
- 후보 네 개가 서로 비슷한 길이 될 수 있음(가파른 지형에서 기준을 지키는 길이 좁은 띠 하나뿐인 경우).
- 평면 노선만 다룸. 종단(세로 단면) · 토공량 확정 · 구조물 계획은 이 단계 범위가 아니며, 임도설계 단계에서 다룸.
- 횡단은 지반선만 보여 주며 설계 단면은 아님.
- 평면 직선 꺾은선만 다룸. 곡선 · 종단(세로 단면) · 토공량 · 구조물 계획은 이 단계 범위가 아니며, 임도설계 단계에서 다룸.
- 아래 횡단 판과 예상 횡단은 없음. 3D 는 지형과 그은 선만 보임.
- 받은 지형 범위 밖에서는 기울기를 셀 수 없음.
@@ -1,25 +1,26 @@
# 사용자 확정 전 값
![연도별 노선 카드](D03_02_year_cards.webp)
![긋는 방식과 제약 칸](D03_03_draw_free.webp)
그림 번호는 [연도별 노선 고르기](D03/02_연도별_노선_고르기)와 같음.
그림 번호는 [본선 긋기](D03/02_본선_긋기)와 같음.
아래 값은 코드에 기본값으로 들어 있으나 사용자가 최종 확정한 값이 아님. 바꾸려면 개발 담당에게 요청.
| 값 | 지금 기본값 | 출처 | 상태 |
| --- | --- | --- | --- |
| 지형 구분 | 특수지형(가장 완화) 고정 | 예정노선 등록 화면에 지형 구분 칸이 없어 임도설계 기본 대체값을 그대로 씀 | 확정 전 |
| 종단 기울기 상한 | 설계속도 20 · 30 · 40 km/h 에 14 · 12 · 10 % | 임도 규정 별표 설계속도별 값 중 특수지형 열 | 지형 구분 확정에 따라 바뀜 |
| 최소 곡선 반지름 | 12 · 20 · 40 m | 같은 별표의 특수지형 열 | 지형 구분 확정에 따라 바뀜 |
| 하천 이격 | 100 m | 법정 수치 없음. 타당성 평가 별표 비고(산지계류 100 m 이내 구간 비율)를 후보로 씀 | 임도설계와 같은 기본값 |
| 탐색 복도 반폭 | 300 m | 예정노선 화면 전용값. 실제 지형으로 시험해 정함 | 시험 결과 기준 |
| 비중 계산 비중 | 예상 50 · 토공 25 · 기울기 25 (%) | 임도설계 기본 비중 | 이 화면에서 바꾸는 칸 없음 |
| 영선 목표 기울기 | 기울기 상한과 같게 | 임도설계 기본 동작 | 이 화면에서 바꾸는 칸 없음 |
| 제약 길이 처음 값 | 20 m | 측점 간격(지식DB 설계제원 총괄) | 확정 전 |
| 제약 기울기 처음 값 | 9 % | 간선임도 설계속도 20 km/h 일반지형 종단기울기 상한(지식DB 종단선형) | 확정 전 |
| 종점 붙는 거리 | 종점 둘레 화면 12 점 | 화면 고정값 | 고정 |
| 기울기 고정 탐색 거리 | 마우스 방향 최대 1000 m | 화면 고정값 | 고정 |
| 측점 간격 | 20 m | 임도설계 측점 규칙과 같음 | 고정 |
| 횡단 표시 폭 | 좌우 각 20 m | 화면 고정값 | 고정 |
| 지형 판정 여유 | 지점이 지형 가장자리에서 300 m 안쪽 | 탐색 복도와 같은 값 | 복도 값과 함께 움직임 |
| 지형 받기 여유 | 350 m(300 ~ 5000 m) | 시점 · 종점 상자 둘레 | 확정 전 |
| 구역 연도 고르기 범위 | 사업 연도 시작부터 10년 | 화면 고정값 | 확정 전 |
| 마크 최소 간격 | 1 m | 화면 고정값 | 고정 |
| 지도 돌림 | 한 번에 15° | 임도설계 노선 화면 회전과 같음 | 고정 |
## 준비 중
- 예정노선 단계에서 연도별 비중이나 목표 기울기를 직접 정하는 화면 칸은 없음. 지금은 모두 기본값으로 계산함.
- 3D 보기에 노견 · 절성토면 · 구조물을 올리는 기능은 없음.
- 제약 값(길이 · 기울기)을 설계속도나 임도 종류에 따라 바꾸는 기능은 없음. 칸에 직접 넣음.
- 곡선 반지름 · 종단 기울기 위반을 검사하는 기능은 이 단계에 없음.
- 3D 에 노견 · 절성토면 · 구조물을 올리는 기능은 없음.
- 위성 지도를 크게 확대할 때의 선명도 개선은 뒤로 미룬 항목임.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 789 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 998 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 KiB

+17 -10
View File
@@ -1,12 +1,19 @@
[
{"name":"D03_00_overview","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"eval":"window.__d03Plan.pick(100)"},{"wait":".d03-plan__cross-body svg"},{"wait_ms":600}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__map","pos":"tr"},{"n":2,"sel":".d03-plan__cross","pos":"tr"},{"n":3,"sel":".d03-plan__hint"},{"n":4,"sel":".d03-plan__years"},{"n":5,"sel":".ui-sidebar-actions","pos":"tr"}]},
{"name":"D03_01_terrain_card","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000}],"settle_ms":2000,"clip":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1)","callouts":[{"n":1,"sel":".d03-plan__hint"}]},
{"name":"D03_02_year_cards","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000}],"settle_ms":2000,"clip":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(2)","callouts":[{"n":1,"sel":".d03-plan__year-head"},{"n":2,"sel":".d03-plan__mode.is-picked","pos":"tr"},{"n":3,"sel":".d03-plan__mode:not(.is-picked)","pos":"tr"}]},
{"name":"D03_03_pick_mode","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"click":".d03-plan__year[data-year=\"2028\"] .d03-plan__mode[data-mode=\"gentle\"]"},{"wait":".d03-plan__year[data-year=\"2028\"] .d03-plan__mode[data-mode=\"gentle\"].is-picked"},{"wait_ms":800}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__year[data-year=\"2028\"] .d03-plan__year-head"},{"n":2,"sel":".d03-plan__year[data-year=\"2028\"] .d03-plan__mode.is-picked","pos":"tr"},{"n":3,"sel":".d03-plan__map","pos":"tr"}]},
{"name":"D03_04_plan_map","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"eval":"window.__d03Plan.pick(400)"},{"wait":".d03-plan__cross-body svg"},{"wait_ms":600}],"settle_ms":2000,"clip":".d03-plan__map","callouts":[{"n":1,"sel":".d03-plan__map","pos":"tr"}]},
{"name":"D03_05_station_cross","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"eval":"window.__d03Plan.pick(100)"},{"wait":".d03-plan__cross-body svg"},{"wait_ms":600}],"settle_ms":2000,"clip":".d03-plan__cross","callouts":[{"n":1,"sel":".d03-plan__cross-head"},{"n":2,"sel":".d03-plan__cross-body"}]},
{"name":"D03_06_cross_fold","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,900],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"eval":"window.__d03Plan.pick(400)"},{"wait":".d03-plan__cross-body svg"},{"wait_ms":600},{"click":".d03-plan__cross .ui-workflow-overlay__handle"},{"wait_ms":800}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__cross .ui-workflow-overlay__handle","pos":"tr"}]},
{"name":"D03_07_buttons","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000}],"settle_ms":2000,"clip":".ui-sidebar-actions","callouts":[{"n":1,"sel":".ui-sidebar-actions > button:nth-child(1)"},{"n":2,"sel":".ui-sidebar-actions > button:nth-child(2)"},{"n":3,"sel":".ui-sidebar-actions > button:nth-child(3)"},{"n":4,"sel":".ui-sidebar-actions > button:nth-child(4)"},{"n":5,"sel":".ui-sidebar-actions > button:nth-child(5)"},{"n":6,"sel":".ui-sidebar-actions > button:nth-child(6)"}]},
{"name":"D03_08_3d_modal","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"click":".ui-sidebar-actions > button:nth-child(6)"},{"wait":".d03-plan__3d-modal"},{"wait_ms":9000},{"wait":".d03-plan__3d-corridor input:checked"}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__3d-year"},{"n":2,"sel":".d03-plan__3d-corridor"},{"n":3,"sel":".d03-plan__3d-body .b05-route__viewport","pos":"br"}]},
{"name":"D03_09_ip_edit","route":"#/d03-plan-analysis","project":"plan","viewport":[1600,1250],"before":[{"wait":".d03-plan__map canvas"},{"wait":".d03-plan__mode"},{"wait_ms":4000},{"eval":"window.__d03Plan.nudge(3, 18, 14)"},{"eval":"window.__d03Plan.pick(200)"},{"wait":".d03-plan__cross-body svg"},{"wait_ms":600}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__map","pos":"tr"},{"n":2,"sel":".d03-plan__year[data-year=\"2027\"] .d03-plan__year-head:nth-child(2)","pos":"tr"},{"n":3,"sel":".d03-plan__year[data-year=\"2027\"] .d03-plan__mode.is-picked","pos":"tr"},{"n":4,"sel":".ui-sidebar-actions > button:nth-child(7)","pos":"tr"}]}
{"name":"D03_00_overview","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__map","pos":"tr"},{"n":2,"sel":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1)"},{"n":3,"sel":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(2)"},{"n":4,"sel":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(3)"},{"n":5,"sel":".d03-plan__tools","pos":"bl"},{"n":6,"sel":".ui-sidebar-actions","pos":"tr"}]},
{"name":"D03_01_terrain_card","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 없음"},{"wait_ms":1500}],"settle_ms":1200,"clip":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1)","callouts":[{"n":1,"sel":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1) .d03-plan__hint"},{"n":2,"sel":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1) button"}]},
{"name":"D03_02_extent_modal","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 없음"},{"wait_ms":1500},{"click":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(1) button"},{"wait":".d03-plan__extent-modal"},{"wait":".ui-kakao-map__box"},{"wait_ms":5000}],"settle_ms":1500,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__extent .d03-plan__row"},{"n":2,"sel":".d03-plan__extent > .ui-text, .d03-plan__extent > p","pos":"bl"},{"n":3,"sel":".d03-plan__extent .ui-kakao-map__box","pos":"tr"},{"n":4,"sel":".d03-plan__extent-modal button:has-text(\"이 범위 받기\")","pos":"bl"}]},
{"name":"D03_03_draw_free","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=본선 긋기"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointermove',{clientX:X+(70),clientY:Y+(-90),bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(X+(78))+'px;top:'+(Y+(-118))+'px;width:130px;height:26px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__draw > .d03-plan__row:nth-child(1)"},{"n":2,"sel":"[data-role=draw-constraint]"},{"n":3,"sel":"#gm1"},{"n":4,"sel":".d03-plan__draw .d03-plan__hint"}]},
{"name":"D03_04_constraint_length","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=본선 긋기"},{"click":"text=길이 고정"},{"fill":"[data-role=draw-length]","value":"40"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointermove',{clientX:X+(90),clientY:Y+(-20),bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(X+(44))+'px;top:'+(Y+(-35))+'px;width:115px;height:26px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":"[data-role=draw-constraint]"},{"n":2,"sel":".d03-plan__draw > .d03-plan__row:nth-child(3) > :nth-child(1)"},{"n":3,"sel":"#gm1"}]},
{"name":"D03_05_constraint_slope","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=본선 긋기"},{"click":"text=기울기 고정"},{"fill":"[data-role=draw-slope]","value":"9"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointermove',{clientX:X+(60),clientY:Y+(-60),bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(X+(126))+'px;top:'+(Y+(-146))+'px;width:125px;height:26px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":"[data-role=draw-constraint]"},{"n":2,"sel":".d03-plan__draw > .d03-plan__row:nth-child(3) > :nth-child(2)"},{"n":3,"sel":"#gm1"}]},
{"name":"D03_06_constraint_both","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=갈래"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[1].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];for(let i=0;i<9;i++)c.dispatchEvent(new WheelEvent('wheel',{deltaY:120,clientX:X,clientY:Y,bubbles:true,cancelable:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[1].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointerdown',{clientX:X+(0),clientY:Y+(0),button:0,bubbles:true}))})()"},{"click":"text=둘 다"},{"fill":"[data-role=draw-length]","value":"20"},{"fill":"[data-role=draw-slope]","value":"9"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[1].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointermove',{clientX:X+(90),clientY:Y+(-100),bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[1].vertices,p=v[-1<0?v.length+(-1):-1],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(X+(74))+'px;top:'+(Y+(-42))+'px;width:115px;height:26px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":"[data-role=draw-constraint]"},{"n":2,"sel":".d03-plan__draw > .d03-plan__row:nth-child(3)"},{"n":3,"sel":"#gm1"}]},
{"name":"D03_07_snap_end","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=본선 긋기"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),s=P.screenOf(P.base().end);c.dispatchEvent(new PointerEvent('pointermove',{clientX:r.left+s[0]+3,clientY:r.top+s[1]+2,bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),s=P.screenOf(P.base().end);const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(r.left+s[0]+(8))+'px;top:'+(r.top+s[1]+(-24))+'px;width:200px;height:28px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":"#gm1"},{"n":2,"sel":".d03-plan__draw .d03-plan__hint"}],"viewport":[1900,900]},
{"name":"D03_08_branch","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=갈래"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[4<0?v.length+(4):4],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointerdown',{clientX:X+(0),clientY:Y+(0),button:0,bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[4<0?v.length+(4):4],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointermove',{clientX:X+(40),clientY:Y+(-150),bubbles:true}))})()"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[4<0?v.length+(4):4],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(X+(-12))+'px;top:'+(Y+(-12))+'px;width:24px;height:24px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__draw > .d03-plan__row:nth-child(1) button:nth-child(2)"},{"n":2,"sel":"#gm1"},{"n":3,"sel":".d03-plan__draw .d03-plan__hint"}]},
{"name":"D03_09_zone_marks","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=구역 마크"},{"wait_ms":300}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__draw > .d03-plan__row:nth-child(1) button:nth-child(3)"},{"n":2,"sel":".d03-plan__draw .d03-plan__hint"},{"n":3,"sel":".d03-plan__map","pos":"tr"}]},
{"name":"D03_10_pieces_years","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500}],"settle_ms":1200,"clip":".ui-sidebar-scroll > .ui-sidebar-card:nth-child(3)","callouts":[{"n":1,"sel":".d03-plan__pieces > :nth-child(1)"},{"n":2,"sel":".d03-plan__pieces > :nth-child(2)"},{"n":3,"sel":".d03-plan__pieces > :nth-child(3) select","pos":"tr"},{"n":4,"sel":".d03-plan__pieces > :nth-child(5)"},{"n":5,"sel":".d03-plan__pieces > :nth-child(6) select","pos":"tr"}]},
{"name":"D03_11_tools","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":"text=구역 마크"},{"eval":"(()=>{const P=window.__d03Plan,c=document.querySelector('.d03-plan__map canvas'),r=c.getBoundingClientRect(),v=P.network().lines[0].vertices,p=v[2<0?v.length+(2):2],s=P.screenOf(p),X=r.left+s[0],Y=r.top+s[1];c.dispatchEvent(new PointerEvent('pointerdown',{clientX:X+(0),clientY:Y+(0),button:0,bubbles:true}))})()"},{"press":"Escape"}],"settle_ms":1200,"clip":".d03-plan__tools","callouts":[{"n":1,"sel":".d03-plan__tools [data-act=undo]"},{"n":2,"sel":".d03-plan__tools [data-act=redo]"},{"n":3,"sel":".d03-plan__tools [data-act=view3d]"},{"n":4,"sel":".d03-plan__tools [data-act=rotate-ccw]"},{"n":5,"sel":".d03-plan__tools [data-act=rotate-cw]"},{"n":6,"sel":".d03-plan__tools [data-act=measure]"}]},
{"name":"D03_12_rotate","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":".d03-plan__tools [data-act=rotate-ccw]"},{"click":".d03-plan__tools [data-act=rotate-ccw]"},{"click":".d03-plan__tools [data-act=rotate-ccw]"},{"wait_ms":500}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__tools [data-act=rotate-ccw]","pos":"bl"},{"n":2,"sel":".d03-plan__tools [data-act=rotate-cw]","pos":"br"}]},
{"name":"D03_13_measure","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":".d03-plan__tools [data-act=measure]"},{"mouse_click":[240,150],"sel":".d03-plan__map"},{"mouse_click":[620,300],"sel":".d03-plan__map"},{"wait_ms":300},{"eval":"(()=>{const r=document.querySelector('.d03-plan__map canvas').getBoundingClientRect();const d=document.createElement('div');d.id='gm1';d.style.cssText='position:fixed;left:'+(r.left+240)+'px;top:'+(r.top+150)+'px;width:380px;height:150px;pointer-events:none';document.body.append(d)})()"}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__tools [data-act=measure]"},{"n":2,"sel":"#gm1"}]},
{"name":"D03_14_3d","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":".d03-plan__tools [data-act=view3d]"},{"wait":".d03-plan__3d-modal"},{"wait_ms":9000},{"eval":"(()=>{const c=document.querySelector('.d03-plan__3d-body canvas'),r=c.getBoundingClientRect();for(let i=0;i<6;i++)c.dispatchEvent(new WheelEvent('wheel',{deltaY:-240,clientX:r.left+r.width/2,clientY:r.top+r.height/2,bubbles:true,cancelable:true}))})()"},{"wait_ms":1500}],"settle_ms":2000,"clip":null,"callouts":[{"n":1,"sel":".d03-plan__3d-year"},{"n":2,"sel":".d03-plan__3d-body .b05-route__viewport","pos":"br"}]},
{"name":"D03_15_buttons","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500}],"settle_ms":1200,"clip":".ui-sidebar-actions","callouts":[{"n":1,"sel":".ui-sidebar-actions > button:nth-child(1)"},{"n":2,"sel":".ui-sidebar-actions > button:nth-child(2)"},{"n":3,"sel":".ui-sidebar-actions > button:nth-child(3)"},{"n":4,"sel":".ui-sidebar-actions > button:nth-child(4)"},{"n":5,"sel":".ui-sidebar-actions > button:nth-child(5)"}]},
{"name":"D03_16_reset_ask","route":"#/d03-plan-analysis","project":"plan","before":[{"wait":".d03-plan__map canvas"},{"wait":"text=받은 지형 안"},{"wait_ms":2500},{"click":".ui-sidebar-actions > button:nth-child(5)","confirm":true},{"wait":".ui-confirm__panel"},{"wait_ms":400}],"settle_ms":1200,"clip":null,"callouts":[{"n":1,"sel":".ui-confirm__message"},{"n":2,"sel":".ui-confirm__actions button:first-child","pos":"bl"},{"n":3,"sel":".ui-confirm__actions button:last-child","pos":"br"}],"after":[{"click":"[class*=\"ui-conf\"][class*=\"__actions\"] button:first-child"}]}
]
+7 -7
View File
@@ -1,6 +1,6 @@
# 확정 · 내보내기
예정노선 3단계. 분석에서 저장한 연도별 노선을 확인하고, 연도마다 일을 맡길 업체를 지정한 뒤 확정하고 내보내는 화면.
예정노선 3단계. 분석에서 저장한 노선을 조각(구역 × 갈래) 단위로 확인하고, 조각마다 일을 맡길 업체를 지정한 뒤 연도 단위로 확정하고 내보내는 화면.
## 여는 길
@@ -14,17 +14,17 @@
| 번호 | 구역 | 하는 일 |
| --- | --- | --- |
| 1 | 연도 표 | 연도마다 연장 · 시점 · 종점 · 측점 · 확정 시각 · 지정 업체를 한 줄로 보여 줌. 업체를 여기서 추가 · 삭제함 |
| 2 | 「확정할 연도」 카드 | 확정할 연도를 고름. 분석 [저장]이 된 연도만 나옴 |
| 1 | 조각 표 | 조각마다 연도 · 선 · 연장 · 시점 · 종점 · 측점 · 확정 시각 · 지정 업체를 한 줄로 보여 줌. 업체를 여기서 추가 · 삭제함 |
| 2 | 「확정할 연도」 카드 | 확정할 연도를 고름. 확정은 연도 단위이며 분석 [저장]이 된 연도만 나옴 |
| 3 | 단추 줄 | [?] · [<] · [>] · [내보내기] · [확정] · [저장] |
## 작업 순서
1. 연도 표에서 연도마다 연장과 측점을 확인함. [연도 표](D04/01_연도_표) 참고.
2. 지정 업체 칸에서 업체를 추가함. 등록 회사는 이름을 찾아 고르고, 아니면 업체명과 메일을 직접 적음. [지정 업체](D04/02_지정_업체) · [업체 직접 추가](D04/03_업체_직접_추가) 참고.
1. 조각 표에서 조각마다 연장과 측점을 확인함. [조각 표](D04/01_조각_표) 참고.
2. 조각마다 지정 업체 칸에서 업체를 추가함. 같은 연도의 본선 · 갈래도 조각이 다르면 업체를 따로 정할 수 있음. 등록 회사는 이름을 찾아 고르고, 아니면 업체명과 메일을 직접 적음. [지정 업체](D04/02_지정_업체) · [업체 직접 추가](D04/03_업체_직접_추가) 참고.
3. [저장]을 눌러 지정 업체를 서버에 저장함. [단추와 확정할 연도](D04/04_단추와_확정할_연도) 참고.
4. 「확정할 연도」에서 확정할 연도를 고르고 [확정]을 누름. 확인 창에서 진행을 누르면 확정과 메일 발송이 이뤄짐. [확정과 메일](D04/05_확정과_메일) 참고.
5. 필요하면 [내보내기]로 노선 파일 묶음을 내려받아 보관함. 파일 구성은 [내보내기 파일 구성](D04/10_내보내기_파일_구성) 참고.
4. 「확정할 연도」에서 확정할 연도를 고르고 [확정]을 누름. 확인 창에서 진행을 누르면 그 연도 조각들이 확정되고 지정 업체마다 그 조각 파일이 메일로 나감. [확정과 메일](D04/05_확정과_메일) 참고.
5. 필요하면 [내보내기]로 조각별 노선 파일 묶음을 내려받아 보관함. 파일 구성은 [내보내기 파일 구성](D04/10_내보내기_파일_구성) 참고.
> 주의: [저장] · [확정]은 산림청 소속 사용자만 할 수 있음. 그 밖의 사용자가 누르면 「산림청만 예정노선을 확정 · 지정할 수 있습니다.」 안내가 나옴.
-29
View File
@@ -1,29 +0,0 @@
# 연도 표
분석에서 저장한 연도별 노선을 한눈에 확인하는 표.
## 여는 길
- 확정 · 내보내기 화면 가운데의 큰 표. 위에 프로젝트 이름이 크게 나옴.
![연도 표](D04_01_year_table.webp)
그림 번호 — 1 연장(m) · 2 시점(위도, 경도) · 3 측점 · 4 확정 시각 · 5 지정 업체
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 연도 열과 연장(m)으로 연도별 노선 길이를 확인함. |
| 2 | 시점 · 종점(위도, 경도)으로 노선 양 끝 위치를 확인함. |
| 3 | 측점 열(`61+14.5` 꼴)로 그 연도 노선이 전체 노선의 어디부터 어디까지인지 확인함. |
| 4 | 확정 열이 비어 있으면 아직 확정 전. 날짜와 시각이 있으면 확정이 끝난 연도. |
| 5 | 지정 업체 열은 [지정 업체](D04/02_지정_업체) 참고. |
## 보이는 것
- 분석을 저장하지 않은 연도는 측점 칸에 「노선 분석 [저장] 전」이 나옴. 「확정할 연도」 목록에도 나타나지 않음.
- 확정 열 = 확정한 날짜와 시각(한국 시간). 비어 있으면 아직 확정 전.
- 시점 · 종점은 위도 · 경도 순서로 소수 6 자리까지 보임.
> 참고: 연장이 서로 다르게 보이면 [노선 분석](D03/00_설명서)에서 후보를 다시 고르고 [저장]한 뒤 돌아옴.
+32
View File
@@ -0,0 +1,32 @@
# 조각 표
분석에서 저장한 노선을 조각(구역 × 갈래) 한 줄씩 한눈에 확인하는 표.
## 여는 길
- 확정 · 내보내기 화면 가운데의 큰 표. 위에 프로젝트 이름이 크게 나옴.
![조각 표](D04_01_piece_table.webp)
그림 번호 — 1 연도 · 선(2027 · 본선) · 2 연장(m) · 3 측점 · 4 확정 시각 · 5 지정 업체 · 6 같은 연도의 갈래 조각(2028 · 갈래 1)
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 연도 열(「2028 · 갈래 1」 꼴)로 조각이 어느 연도의 어느 선인지, 연장(m)으로 조각 길이를 확인함. |
| 2 | 시점 · 종점(위도, 경도)으로 노선 양 끝 위치를 확인함. |
| 3 | 측점 열(`0+0 ~ 19+0` 꼴)로 조각이 그 선의 어디부터 어디까지인지 확인함. 측점은 선마다 0+0 부터 셈. |
| 4 | 확정 열이 비어 있으면 아직 확정 전. 날짜와 시각이 있으면 확정이 끝난 연도의 조각. |
| 5 | 지정 업체 열은 [지정 업체](D04/02_지정_업체) 참고. |
## 보이는 것
- 한 줄 = 조각 하나. 같은 연도에 본선 구역과 갈래가 있으면 줄이 여럿이고, 줄 순서는 연도 → 선 → 측점 차례.
- 조각 이름은 「선 이름 + 측점 범위」(예: 본선 0+0~19+0)이며 대시보드 「받은 예정노선」과 노선 입력의 [예정노선에서 가져오기]에서도 같은 이름으로 보임.
- 분석을 저장하지 않은 옛 연도 줄은 측점 칸에 「노선 분석 [저장] 전」이 나옴. 「확정할 연도」 목록에도 나타나지 않음.
- 조각이 없는 옛 예정노선은 연도 한 줄이 한 조각처럼 보임.
- 확정 열 = 확정한 날짜와 시각(한국 시간). 확정은 연도 단위라서 같은 연도의 조각은 같은 시각이 찍힘.
- 시점 · 종점은 위도 · 경도 순서로 소수 6 자리까지 보임.
> 참고: 연장이 다르게 보이면 [노선 분석](D03/00_설명서)에서 선을 고치고 [저장]한 뒤 돌아옴.
+8 -6
View File
@@ -1,31 +1,33 @@
# 지정 업체
연도마다 일을 맡길 업체를 지정하는 열.
조각마다 일을 맡길 업체를 지정하는 열.
## 여는 길
- 연도 표의 맨 오른쪽 「지정 업체」 열. 연도 한 줄마다 업체 목록과 추가 칸이 있음.
- 조각 표의 맨 오른쪽 「지정 업체」 열. 조각 한 줄마다 업체 목록과 추가 칸이 있음.
![지정 업체 열](D04_02_assigned_firms.webp)
그림 번호 — 1 지정된 업체 한 건 · 2 표시 딱지(Aislo) · 3 [×] 빼기 단추 · 4 업체 추가 칸
그림 번호 — 1 2028 · 본선 조각의 업체 · 2 같은 연도 갈래 조각의 다른 업체 · 3 [×] 빼기 단추 · 4 업체 추가 칸
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 연도 줄의 지정 업체 목록에서 이미 지정된 업체를 확인함. 한 연도에 업체 여럿을 지정할 수 있음. |
| 1 | 조각 줄의 지정 업체 목록에서 이미 지정된 업체를 확인함. 한 조각에 업체 여럿을 지정할 수 있음. |
| 2 | 업체를 더하려면 아래 추가 칸을 씀. [업체 직접 추가](D04/03_업체_직접_추가) 참고. |
| 3 | 잘못 넣은 업체는 업체 옆 [×]로 뺌. |
| 4 | 다 끝나면 왼쪽 아래 [저장]을 눌러 서버에 남김. |
## 보이는 것
- 업체는 조각마다 따로 정함. 같은 연도의 본선 조각과 갈래 조각에 같은 업체를 넣어도, 다른 업체를 넣어도 됨(그림의 2028 · 본선과 2028 · 갈래 1은 다른 업체).
- 업체 한 건 = 「업체명 · 메일」 글 + 딱지.
- 딱지 「Aislo」 = 아이슬로에 등록된 회사로 지정된 업체.
- 딱지 「메일 보냄」 = 확정 때 메일이 나갔다는 표시. 같은 업체에는 다시 확정해도 중복 발송하지 않음.
- 딱지 「연결됨」 = 그 업체가 이 연도 노선을 자기 임도 프로젝트로 가져가 연결했다는 표시.
- 같은 업체 판정: 등록 회사는 회사 번호, 직접 적은 업체는 메일 주소(대소문자 구분 없음). 같은 업체를 두 번 넣어도 한 번만 들어감.
- 딱지 「연결됨」 = 그 업체가 이 조각을 자기 임도 프로젝트로 가져가 연결했다는 표시.
- 같은 업체 판정: 등록 회사는 회사 번호, 직접 적은 업체는 메일 주소(대소문자 구분 없음). 같은 조각에 같은 업체를 두 번 넣어도 한 번만 들어감.
- 산림청이 아닌 계정은 추가 칸과 [×]가 보이지 않음. 보기만 가능.
> 참고: 이 그림의 업체명과 메일은 가이드용 견본임.
@@ -4,7 +4,7 @@
## 여는 길
- 연도 표 「지정 업체」 열의 추가 칸(업체 칸 · 메일 칸 · [추가]).
- 조각 표 「지정 업체」 열의 추가 칸(업체 칸 · 메일 칸 · [추가]).
![업체명과 메일을 적은 모습](D04_03_add_manual.webp)
@@ -17,7 +17,7 @@
| 1 | 등록 회사로 지정하려면 업체 칸에 회사 이름 글자를 넣음. 가입된 회사 이름이 목록으로 뜨면 하나를 고름. |
| 2 | 메일 칸을 비우면 그 회사의 대표 메일이 쓰임. 다른 메일로 받으려면 메일 칸에 적음. |
| 3 | 등록 회사가 아니면(수기 지정) 업체 칸에 업체명, 메일 칸에 메일(@ 포함)을 둘 다 적음. |
| 4 | [추가]를 누름. 그 연도 칸에 업체 이름 + 메일이 표시됨. |
| 4 | [추가]를 누름. 그 조각 줄에 업체 이름 + 메일이 표시됨. |
![저장 안 된 변경 안내](D04_04_unsaved_note.webp)
@@ -29,6 +29,6 @@
- 수기 지정에서 업체명이나 메일이 비면 「등록 회사가 아니면 업체명과 메일이 필요합니다.」 안내가 나오고 추가되지 않음.
- 업체 추가와 삭제는 [저장]을 누르기 전까지 이 브라우저 탭에만 임시로 남음. 탭을 닫으면 사라짐.
> 주의: [저장]은 표에 있는 모든 연도의 지정 업체를 화면 내용대로 맞춤. 업체를 모두 뺀 연도는 지정이 비워짐.
> 주의: [저장]은 표에 있는 모든 조각의 지정 업체를 화면 내용대로 맞춤. 업체를 모두 뺀 조각은 지정이 비워짐.
> 참고: 이 그림의 업체명과 메일은 가이드용 견본임.
@@ -19,7 +19,7 @@
| 단계 | 할 일 |
| --- | --- |
| 1 | 「확정할 연도」에서 확정할 연도의 선택 상자를 켬. 아직 확정하지 않은 연도는 처음부터 켜져 있음. |
| 2 | 지정 업체를 바꿨으면 [저장]을 눌러 서버에 남김. 「지정 업체를 저장했습니다.」 알림이 뜸. |
| 2 | 조각 줄의 지정 업체를 바꿨으면 [저장]을 눌러 서버에 남김. 「지정 업체를 저장했습니다.」 알림이 뜸. |
| 3 | [확정]은 [확정과 메일](D04/05_확정과_메일) 참고. |
| 4 | 노선 파일이 필요하면 [내보내기]를 누름. |
@@ -27,11 +27,11 @@
| 단추 | 하는 일 |
| --- | --- |
| [내보내기] | 「프로젝트이름_예정노선.zip」을 내려받음. 산림청은 모든 연도와 전체 노선을 받음. 지정받은 회사는 확정된 자기 연도만 받음 |
| [확정] | 고른 연도를 확정하고 지정 업체에 메일을 보냄. 고른 연도가 없으면 「확정할 연도를 고르세요.」 안내 |
| [저장] | 연도별 지정 업체 목록을 서버에 저장함 |
| [내보내기] | 「프로젝트이름_예정노선.zip」을 내려받음. 산림청은 모든 조각과 전체 노선을 받음. 지정받은 회사는 확정된 자기 조각만 받음 |
| [확정] | 고른 연도의 조각들을 확정하고 조각마다 지정 업체에 메일을 보냄. 고른 연도가 없으면 「확정할 연도를 고르세요.」 안내 |
| [저장] | 조각별 지정 업체 목록을 서버에 저장함 |
- 분석 [저장]이 된 연도만 목록에 나옴.
- 분석 [저장]이 된 연도만 목록에 나옴. 확정은 연도 단위라서 그 연도의 모든 조각이 함께 확정됨.
- 산림청이 아닌 계정은 「확정할 연도」 카드와 [확정] · [저장]이 보이지 않고 [내보내기]만 있음.
- 내보내기는 서버에 저장된 노선만 사용함. [노선 분석](D03/00_설명서)에서 [저장]하지 않은 변경은 반영되지 않음.
@@ -1,6 +1,6 @@
# 확정과 메일
고른 연도를 확정하고 지정 업체에 노선 파일을 메일로 보내는 과정.
고른 연도를 확정하고 조각마다 지정 업체에 그 조각 노선 파일을 메일로 보내는 과정.
## 여는 길
@@ -18,7 +18,7 @@
| 2 | 「확정할 연도」에서 연도를 고름. |
| 3 | [확정]을 누르면 확인 창이 열림. 「고른 연도를 확정하고 지정 업체에 노선 묶음을 메일로 보냅니다. 진행할까요?」 |
| 4 | 진행하려면 창의 [확정]을 누름. 그만두려면 [취소]를 누름. |
| 5 | 끝나면 「확정 — 메일 sent 2 · already_sent 1」 꼴로 업체별 처리 결과가 개수로 나옴. |
| 5 | 끝나면 「확정 — 메일 sent 3 · already_sent 1」 꼴로 업체(조각 지정)별 처리 결과가 개수로 나옴. |
## 보이는 것
@@ -27,12 +27,13 @@
| sent | 메일 발송 성공 |
| already_sent | 이미 보낸 업체여서 다시 보내지 않음 |
| no_email | 메일 주소가 없어 보내지 못함(등록 회사의 대표 메일이 비어 있는 경우 등) |
| no_route | 지정한 조각이 저장된 노선에 없어 보내지 못함 |
| failed | 메일 발송 실패 |
- 확정하면 연도 표의 확정 열에 날짜와 시각이 찍히고, 지정 업체에 「메일 보냄」 딱지가 붙음.
- 확정하면 조각 표의 확정 열에 날짜와 시각이 찍히고, 지정 업체에 「메일 보냄」 딱지가 붙음.
- 보내지는 메일의 제목은 「[예정노선 확정] 프로젝트이름 N년」.
- 본문에는 프로젝트 · 사업 지역 · 연도 · 연장(km 와 m) 요약과 첨부 파일 목록, 압축을 풀면 노선 입력에 바로 올릴 수 있다는 안내가 있음.
- 첨부 = 그 업체의 연도 한 해 분량 zip 1개(파일 이름 「프로젝트이름_예정노선_연도.zip」). 내용은 [내보내기 파일 구성](D04/10_내보내기_파일_구성) 참고.
- 본문에는 프로젝트 · 사업 지역 · 연도 · 그 조각의 연장(km 와 m) 요약과 첨부 파일 목록, 압축을 풀면 노선 입력에 바로 올릴 수 있다는 안내가 있음.
- 첨부 = 그 업체에 지정된 조각 한 개 분량 zip 1개(파일 이름 「프로젝트이름_예정노선_2028_갈래1_p2.zip」 꼴 = 연도 · 선 · 조각 번호). 한 업체가 조각 둘에 지정되어 있으면 메일도 둘로 나감. 내용은 [내보내기 파일 구성](D04/10_내보내기_파일_구성) 참고.
> 주의: 확정은 분석 [저장]이 된 연도만 가능함. 저장하지 않은 연도를 억지로 확정하려 하면 「분석 [저장]이 안 된 연도입니다」 오류가 나옴.
@@ -1,27 +1,28 @@
# 받은 업체의 임도 연결
확정된 예정노선을 받은 업체가 자기 임도 프로젝트로 가져가 설계를 이어 가는 방법.
확정된 예정노선 조각을 받은 업체가 자기 임도 프로젝트로 가져가 설계를 이어 가는 방법.
## 여는 길
- 지정받은 등록 회사는 대시보드의 「받은 예정노선」 구역에서 확정된 연도를 봄.
- 지정받은 등록 회사는 대시보드의 「받은 예정노선」 구역에서 자기에게 지정된 확정 조각을 봄. 한 줄 = 조각 하나이며 「2028 · 본선 0+0~19+0」처럼 연도와 조각 이름이 함께 보임.
- 열 = 예정노선 · 연도 · 확정 · 연결 상태(연결됨 / 미연결 / 업데이트 있음) · 작업.
## 단계
| 단계 | 할 일 |
| --- | --- |
| 1 | 「받은 예정노선」에서 연도 줄의 [보기]를 누르면 예정노선 화면이 보기만 가능한 상태로 열림. |
| 1 | 「받은 예정노선」에서 조각 줄의 [보기]를 누르면 예정노선 화면이 보기만 가능한 상태로 열림. 화면에는 자기 회사에 지정된 조각 줄만 보임. |
| 2 | [연결]을 누르면 모달이 열려 두 가지 중 하나를 고름. |
| 3 | 「새 임도 프로젝트로」 = 예정노선 이름 + 연도로 임도 프로젝트를 새로 만들고 노선 입력 단계(B03)로 이동. 예정노선의 설계속도(20 · 30 · 40 km/h)가 새 프로젝트의 설계속도 기본값으로 들어감. |
| 4 | 「기존 프로젝트에 연결」 = 우리 회사의 임도 프로젝트를 골라 그 프로젝트에 연결. 임도 프로젝트가 없으면 「우리 회사 임도 프로젝트가 없습니다.」가 보임. |
| 5 | 임도 프로젝트 노선 입력 화면의 [예정노선에서 가져오기]로도 같은 일을 할 수 있음. 지정받은 연도를 고르면 노선이 입력됨. |
| 5 | 임도 프로젝트 노선 입력 화면의 [예정노선에서 가져오기]로도 같은 일을 할 수 있음. 지정받은 조각(「프로젝트 연도 조각 이름」으로 보임)을 고르면 그 조각의 노선이 입력됨. |
## 보이는 것
- 연결하면 그 연도 노선(shapefile 한 벌)이 노선 입력 단계의 입력 파일로 들어감. 파일을 직접 올린 것과 같은 길이라 이후 처리도 같음. 지형 자료는 업체가 따로 올려야 함.
- 연결하면 그 조각 노선(shapefile 한 벌)이 노선 입력 단계의 입력 파일로 들어감. 파일을 직접 올린 것과 같은 길이라 이후 처리도 같음. 지형 자료는 업체가 따로 올려야 함.
- 이미 분석 결과가 있는 임도 프로젝트에 연결하면 기존 결과를 지워도 되는지 묻는 확인 창이 먼저 나옴. 취소하면 아무것도 바뀌지 않음.
- 연결 시점의 노선이 복사되므로, 산림청이 뒤에 노선을 바꿔도 임도 프로젝트는 자동으로 바뀌지 않음. 대신 「업데이트 있음」 표시가 뜨며, 노선 입력 화면 위쪽 띠에서 [다시 가져오기]로 직접 반영 여부를 결정함.
- 한 임도 프로젝트는 한 연도에만 연결됨. 다른 연도로 다시 연결하면 앞의 연결은 풀림.
- 한 임도 프로젝트는 한 조각에만 연결됨. 다른 조각(같은 연도의 갈래도 마찬가지)으로 다시 연결하면 앞의 연결은 풀림. 조각이 여럿이면 조각마다 임도 프로젝트를 따로 만들어 연결함.
- 측점은 조각마다 0+0 부터 새로 시작함. 임도 종류 · 설계속도는 임도설계 기본값(작업임도 · 20 km/h)으로 시작하며 임도 프로젝트에서 바꿈.
> 참고: 임도 프로젝트 쪽 화면은 [임도설계 가이드](B03/00_설명서)를 참고. 산림청 쪽에서 연결된 연도에는 연도 표의 지정 업체에 「연결됨」 딱지가 붙음.
> 참고: 임도 프로젝트 쪽 화면은 [임도설계 가이드](B03/00_설명서)를 참고. 산림청 쪽에서 연결된 조각에는 조각 표의 지정 업체에 「연결됨」 딱지가 붙음.
@@ -7,13 +7,13 @@
## 한눈에
- 내려받는 파일 이름 = 「프로젝트이름_예정노선.zip」. 이름에 쓸 수 없는 글자는 밑줄(_)로 바뀜.
- 압축 안에 연도 이름의 폴더가 연도마다 하나, 그리고 「전체」 폴더가 하나 들어 있음(전체 폴더는 산림청만 받음).
- 업체에 보내는 메일 첨부 zip 은 한 연도 분량이며, 폴더 없이 그 연도 파일들이 바로 들어 있음.
- 압축 안에 조각마다 폴더가 하나(폴더 이름 「2028_갈래1_p2」 = 연도 · 선 · 조각 번호), 그리고 「전체」 폴더가 하나 들어 있음(전체 폴더는 산림청만 받음). 조각이 없는 옛 예정노선은 연도 이름(「2026」) 폴더가 연도마다 하나.
- 업체에 보내는 메일 첨부 zip 은 그 업체에 지정된 조각 한 개 분량이며, 폴더 없이 그 조각 파일들이 바로 들어 있음.
| 위치 | 내용 |
| --- | --- |
| 연도 폴더(예: 2026) | 그해 시점에서 종점까지 중심선 한 줄(shapefile 한 벌) + 좌표표 엑셀 |
| 전체 폴더 | 모든 연도를 이은 한 줄(shapefile 한 벌, 발주처 보관용) + 모든 연도가 담긴 좌표표 엑셀 |
| 조각 폴더(예: 2028_갈래1_p2) | 그 조각의 중심선 한 줄(shapefile 한 벌) + 좌표표 엑셀 |
| 전체 폴더 | 선마다 한 줄씩 담은 shapefile 한 벌(발주처 보관용: 본선 · 갈래 레코드) + 모든 조각이 담긴 좌표표 엑셀 |
## shapefile 한 벌
@@ -31,39 +31,39 @@
| 대상지 | 「사업지역.연장km」 글자(예: 지역.2.2). 20바이트(한글 10자 안팎)를 넘으면 뒤가 잘림 | 글자 20 |
| 길이 | 노선 연장, 단위 km(소수 셋째 자리) | 숫자 11.3 |
| 연도 | 사업 연도. 전체 노선은 비어 있음 | 정수 4 |
| 시점누가 | 그 선이 시작하는 누가거리(m) · 기계용 숫자 칸 | 숫자 11.2 |
| 종점누가 | 그 선이 끝나는 누가거리(m) · 기계용 숫자 칸 | 숫자 11.2 |
| 시점누가 | 그 조각이 시작하는 누가거리(m, 그 선의 0+0 부터 잰 값) · 기계용 숫자 칸 | 숫자 11.2 |
| 종점누가 | 그 조각이 끝나는 누가거리(m) · 기계용 숫자 칸 | 숫자 11.2 |
- 대상지 · 길이 두 칸은 용화 양식과 같고, 연도 · 시점누가 · 종점누가 는 이 프로그램이 덧붙인 칸임.
- 누가 값은 2단계에서 이어 셈한 값 그대로임. 앞 연도 종점 누가 = 다음 연도 시점 누가.
- 누가 값은 노선 분석에서 구역 경계로 정한 값 그대로임. 앞 구역 종점 누가 = 다음 구역 시점 누가이고, 갈래는 갈래마다 0 부터 셈.
## 좌표표 엑셀
- 파일 이름 = 「좌표표_프로젝트이름.xlsx」, 시트 이름 「좌표표」.
- 첫 줄에 「프로젝트이름 예정노선 좌표표 (UTM-K EPSG:5179)」 제목, 둘째 줄이 열 이름, 이후 연도마다 한 줄.
- 연도 폴더의 좌표표는 그 연도 한 줄, 전체 폴더의 좌표표는 모든 연도가 줄마다 들어 있음.
- 첫 줄에 「프로젝트이름 예정노선 좌표표 (UTM-K EPSG:5179)」 제목, 둘째 줄이 열 이름, 이후 조각마다 한 줄.
- 조각 폴더의 좌표표는 그 조각 한 줄, 전체 폴더의 좌표표는 모든 조각이 줄마다 들어 있음.
| 열 | 뜻 |
| --- | --- |
| 연도 | 사업 연도 |
| 연도 | 구역에 정한 사업 연도 |
| 시점 X · 시점 Y | 시작점 UTM-K 좌표(m) |
| 종점 X · 종점 Y | 끝점 UTM-K 좌표(m) |
| 시점 경도 · 시점 위도 | 시작점 위경도(도) |
| 종점 경도 · 종점 위도 | 끝점 위경도(도) |
| 시점 측점 · 종점 측점 | 측점(No.+거리 · 예 `61+14.5` · 20 m 마다 번호) |
| 시점누가(m) · 종점누가(m) | 이어 셈한 누가거리(m) |
| 연장(m) | 그 연도 노선 길이 |
| 연장(m) | 그 조각 길이 |
## 보는 사람에 따른 차이
| 사용자 | 받는 범위 |
| --- | --- |
| 산림청 | 분석이 저장된 모든 연도 폴더 + 전체 폴더 |
| 지정받은 등록 회사 | 확정되었고 자기 회사가 지정된 연도 폴더만. 전체 폴더 없음. 받을 연도가 없으면 「받을 수 있는 연도가 없습니다」 로 거절됨 |
| 산림청 | 분석이 저장된 모든 조각 폴더 + 전체 폴더 |
| 지정받은 등록 회사 | 확정되었고 자기 회사가 지정된 조각 폴더만. 전체 폴더 없음. 받을 조각이 없으면 「받을 수 있는 연도가 없습니다」 로 거절됨 |
| 저장된 분석이 전혀 없을 때 | 「분석 [저장]이 된 연도가 없습니다.」 로 거절됨 |
## 알아 둘 것
- 파일은 서버에 저장된 노선으로만 만들며, 화면에서 아직 저장하지 않은 노선은 반영되지 않음.
- 전체 노선은 앞 연도 끝점과 다음 연도 시작점이 겹치므로 겹치는 한 점을 빼고 이어 붙임.
- 임도 프로젝트로 연결할 때는 좌표표 없이 shapefile 한 벌만 노선 입력에 들어감.
- 전체 폴더는 선마다 한 레코드로 담음(본선 한 줄 · 갈래마다 한 줄). 같은 선의 구역은 경계점이 겹치므로 겹치는 한 점을 빼고 이어 붙임.
- 임도 프로젝트로 연결할 때는 좌표표 없이 그 조각의 shapefile 한 벌만 노선 입력에 들어감.
@@ -1,6 +1,6 @@
# 사용자 확정 전 값
![연도 표](D04_01_year_table.webp)
![조각 표](D04_01_piece_table.webp)
아래 항목은 코드의 현재 동작이며, 바꾸려면 개발 담당에게 요청.
@@ -12,7 +12,9 @@
| 좌표표 엑셀 | 연도 폴더 · 전체 폴더에 포함, 선택 기능은 아님 | 요구서는 「선택」 으로 적었으나 실제로는 항상 만듦 | 확정 전 |
| 메일 재발송 | 이미 보낸 업체에는 다시 보내지 않음, 화면에 재발송 단추 없음 | 서버에 재발송 옵션은 있으나 화면에 연결되지 않음 | 준비 중 |
| 연결 시 연도 측점 | 연결한 임도 프로젝트에서 측점이 처음부터 다시 시작할지 | 이어 받기 기능이 필요해 뒤로 미룬 항목 | 준비 중 |
| 설계속도 전달 | 새 임도 프로젝트로 연결할 때 예정노선 설계속도가 노선 단계(B05) 설정에도 들어감. 기존 프로젝트는 프로젝트 설계속도 칸이 비어 있을 때만 채움 | 임도설계 설정과 같은 값 범위 | 동작 중 |
| 연결한 임도 프로젝트의 종류 · 설계속도 | 예정노선에서는 받지 않으므로 임도설계 기본값(작업임도 · 20 km/h)으로 시작함. 임도 프로젝트에서 바꿈 | 요구 389 | 확정 전 |
| 업체 지정 단위 | 조각(구역 × 갈래)마다 한 줄 | 사용자 확정(요구 391) | 확정 |
| 확정 단위 | 연도 단위(같은 연도의 조각이 함께 확정됨) | 기존 동작 | 확정 전 |
## 준비 중
Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Some files were not shown because too many files have changed in this diff Show More