전역 설정
설정 페이지는 좌측 트리 위젯과 우측 설정 카드로 구성됩니다. 트리에서 카테고리를 선택하면 해당 설정 카드가 우측에 표시됩니다.

공통 동작
- 즉시 반영 · 즉시 저장: 대부분의 설정은 변경 즉시 화면에 반영되고 자동 저장됩니다. 화면을 보며 조정하는 것이 표준 사용 방식입니다.
- 이번 변경 되돌리기: 설정 창 하단의 [이번 변경 되돌리기] 버튼으로 창을 연 시점의 스냅샷으로 일괄 복구할 수 있습니다. 설정 카드의 값만 되돌리며, 작업 상태(뷰 모드 등)는 롤백하지 않습니다. 창을 연 뒤 새로 만든 사용자 프리셋도 함께 철회됩니다.
- 지연 반영 안내: 즉시 반영되지 않는 항목(예: 부점 이동 구동 방식·배속)을 바꾸면 설정 창 하단에 "저장됨 — 다음 팬 진입부터 적용됩니다" 같은 1회성 알림이 표시됩니다.
카테고리 구조
일반
| 페이지 | 설명 |
|---|---|
| 개요 | 일반 설정 요약 |
| 언어 | 다국어 지원 준비 중 — 현재 한국어 고정 (콤보 비활성) |
| 시작 동작 | 앱 시작 시 기본 동작 설정 |
테마/외관
| 페이지 | 설명 |
|---|---|
| 개요 | 테마 설정 요약 |
| 테마 | 다크/라이트 모드 전환 (실시간 미리보기) |
| 폰트 | UI 폰트 설정 |
테마 전환은 타이틀바의 테마 버튼으로도 가능합니다.
지도
| 페이지 | 설명 |
|---|---|
| 개요 | 지도 설정 요약 |
| TMS 프리셋 | 7개 타일 서버 프리셋 선택 |
| API 키 | VWorld / Stamen API 키 입력 |

TMS 프리셋 목록
| 프리셋 | 기본 줌 | API 키 필요 |
|---|---|---|
| OpenStreetMap | 10 | 아니요 |
| ESRI Topographic | 10 | 아니요 |
| ESRI Satellite | 10 | 아니요 |
| VWorld Base | 10 | 예 |
| VWorld Satellite | 10 | 예 |
| VWorld Hybrid | 10 | 예 |
| Stamen Terrain | 10 | 예 |
좌표계
| 페이지 | 설명 |
|---|---|
| 개요 | 좌표계 설정 요약 |
| EPSG 데이터 | EPSG 데이터베이스 필터/상세 조회 |
허용오차
표정 계산의 합격 판정 기준을 관리하는 단일 페이지입니다.
| 카드 | 설명 |
|---|---|
| 표정 잔차 허용오차 (사진/영상 좌표) | 내부/상호표정 잔차의 허용 기준 |
| 절대표정(대지표정) — 도화축척별 허용오차 | 도화축척별 지상 허용오차 기준 |
MCP 서버
| 페이지 | 설명 |
|---|---|
| 개요 | MCP 서버 상태 요약 |
| 세부 설정 | 포트, 최대 클라이언트 수, 활성화/비활성화 |

MCP 서버 설정
| 항목 | 기본값 | 설명 |
|---|---|---|
| 포트 | 9234 | TCP 리스닝 포트 |
| 최대 클라이언트 | 5 | 동시 접속 가능 클라이언트 수 |
| 활성화 | 켜짐 | MCP 서버 활성화/비활성화 |
계정
| 페이지 | 설명 |
|---|---|
| 개요 | 계정 상태 요약 |
| 포탈 로그인 | Google OAuth로 협업 포탈 로그인 |

포탈 로그인
Google OAuth 2.0 (PKCE 흐름)으로 로그인합니다.
- 미로그인 상태: "Google로 로그인" 버튼 표시
- 로그인 상태: 사용자 이름, 이메일 표시 + "로그아웃" 버튼
- 로그인하면 타이틀바의 이슈 보고 버튼이 활성화됩니다
프로필 사진
Google 계정의 프로필 사진이 로그인 시 자동으로 표시됩니다.
| 위치 | 크기 | 설명 |
|---|---|---|
| 좌측 네비게이션 하단 | 32px | 설정 버튼 위, 이름/이메일과 함께 표시. 네비게이션 접힘 시 숨김 |
| 설정 좌측 패널 | 36px | 설정 트리 위 사용자 정보 영역 |
| 설정 > 계정 개요 | 56px | 로그인 상태 카드 내 |
- 프로필 사진은 Google 계정에서 비동기로 다운로드되어 원형으로 표시됩니다
- 프로필 사진이 없는 경우 기본 사람 아이콘이 표시됩니다
- 로그아웃 시 모든 위치에서 기본 아이콘으로 복원됩니다
Firebase 연동
포탈 로그인은 Firebase Auth를 사용합니다. Google 계정으로 로그인하면 협업 포탈(geoomni-cs.dahangis.co.kr)에서 이슈를 등록할 수 있습니다.
뷰어
이미지 뷰어의 줌·표시·조준 요소를 설정합니다. 변경은 즉시 뷰에 반영됩니다.
| 카드 | 설명 |
|---|---|
| 줌 설정 | 줌 동작 옵션 |
| 줌 프리셋 버튼 | 줌 툴바의 프리셋 배율 버튼 구성 |
| 위치 설정 | 줌 툴바·미니맵의 화면 위치 |
| 커서 프리셋 | 입체(모델) 뷰의 조준 커서 (아래 상세) |
| 부점 (측표) 스타일 | 입체 뷰 화면 중심의 부점(floating mark) (아래 상세) |
| 배경색 | 뷰어 배경색 |
커서 프리셋
입체(모델) 뷰의 조준 커서 모양을 설정합니다. 마우스 팬 중(커서 숨김)에는 부점이 조준을 담당하며, 단일 이미지 뷰어의 커서는 OS 기본 화살표로 유지됩니다.
- 프리셋 9종: 조준 십자 — 흰 테두리(기본), 십자선, 십자선+원(GCP 관측), 점(정밀 측정), 화살표+십자선(탐색), 손(패닝), 줌 돋보기, 측정 십자선(눈금), 사용자 정의 파일
- 크기: 16~64 px 슬라이더 / 색상 선택 / 미리보기 제공
부점 (측표) 스타일
입체(모델) 뷰 화면 중심의 부점 모양을 설정합니다. 형태·크기·두께·색을 프리셋으로 묶어 관리합니다.
| 항목 | 내용 |
|---|---|
| 프리셋 | 내장 4종은 읽기 전용. 값 수정 후 [새 프리셋…] 으로 사용자 프리셋 저장, 사용자 프리셋만 [저장](덮어쓰기) · [삭제] 가능. 수정 중이면 "* 수정됨" 표시 |
| 형태 (6종) | 십자+원(기본) · 십자만 · 원만 · 십자+이중원 · X형(대각)+원 · 점(도트) |
| 크기 | 8~48 px — 화면 물리 px 고정 (줌과 무관하게 같은 크기로 보임) |
| 선 두께 | 0 = 엔진 기본. 점(도트) 형태는 채워진 원이라 두께가 적용되지 않음(안내 표시) |
| 색상 | 색상 선택 대화상자 |
입력 장치
입체 관측 입력 장치의 동작을 설정합니다 (추후 전용 휠/핸드휠 장치 설정 예정).
| 카드 | 설명 |
|---|---|
| 마우스 휠 | 입체 관측(우클릭 팬 모드)에서 휠 = 부점 높이(Z). 방향 선택: 휠 위로 = 상승(기본) / 하강(반전) |
| 부점 이동 (팬) | 우클릭 팬 구동 방식 — 화면 비례(기본, 줌에 따라 지상 속도 변화) / 지상 고정(도화기)(1카운트 = 지상 0.001 단위 × 배속, 줌과 무관). 배속 0.1x~5x. 다음 팬 진입부터 적용 |
디스플레이
다중 모니터 배치를 설정합니다.
| 카드 | 설명 |
|---|---|
| 메인 창 모니터 | 메인 앱이 항상 실행될 모니터 지정 (자동 = 강제하지 않음). XREAL 등 재연결 시 Windows 가 창을 이전 모니터로 되돌리는 것도 자동 교정 |
| SBS 디스플레이 | SBS 3D 출력 대상 디스플레이 선택 — 모델 입체 뷰어에서 SBS 를 켤 때 사용. 우안 수직 정렬 보정(px)으로 안경 좌/우 패널 정렬 편차 보정 |
고급
| 페이지 | 설명 |
|---|---|
| 개요 | 고급 설정 요약 |
| 로깅 | 로그 레벨 (DEBUG/INFO/WARN/ERROR), 최대 크기, 로테이션 |
| 성능 | 병렬 스레드 수 (자동/수동) |
| 서버 포트 | 문서 서버/MCP/대시보드 포트 |
설정 영구 저장
모든 설정은 QSettings(Windows 레지스트리)에 자동 저장됩니다. 앱을 재시작해도 마지막 설정이 유지됩니다.
| 설정 | 저장 키 |
|---|---|
| 테마 (다크/라이트) | appearance/dark |
| TMS URL | map/tmsUrl |
| VWorld API 키 | map/vworldApiKey |
| EPSG 코드 | coordinate/epsg |
| MCP 포트 | mcp/port |
| 포탈 토큰 | portal/token |
MCP 명령
| 명령 | 설명 |
|---|---|
nav.selectPage {"page":"settings"} |
설정 페이지로 전환 |
app.setTheme {"dark":true} |
다크 모드 설정 |
app.getTheme |
현재 테마 조회 |
app.setEpsgCode {"code":5186} |
EPSG 코드 설정 |
ui.setWidgetValue {"name":"mcpPortSpin","value":"9234"} |
MCP 포트 변경 |
settings.revertUiChanges |
설정 되돌리기 — 창 열기 시점 스냅샷 일괄 복구 (복구된 키 목록 반환) |