콘텐츠로 이동

개요

GeoOmni는 항공사진측량 디지털 도화 시스템의 데스크톱 클라이언트입니다. 이미지 등록부터 내부·상호·절대표정까지의 표정 파이프라인과, Vulkan GPU 가속 뷰어, MCP 에이전트 자동화를 제공합니다.


앱 구조

MainWindow (DWM Mica 배경)
├── CustomTitleBar (48px)
│   ├── 로고 + 앱 이름 / QMenuBar
│   ├── 포탈 · 이슈 보고 버튼
│   └── 테마 전환 · 시스템 버튼
├── NavigationView (좌측, 펼침 200px / 접힘 48px)
│   ├── 대시보드
│   ├── 좌표계
│   ├── 카메라
│   ├── GCP
│   ├── 이미지
│   ├── 모델
│   ├── 표정 ──┬── 내부표정
│   │          ├── 상호표정
│   │          └── 절대표정
│   └── 설정 (하단)
├── QStackedWidget (우측)
│   ├── 대시보드 / MDI / 좌표계 / 설정
│   ├── 카메라 / GCP / 이미지 관리
│   ├── 단일 뷰어 · 다중 뷰어
│   └── 내부표정 · 모델 워크스페이스 · 모델 목록 · 표정 개요
└── StatusBar (하단 — 엔진 모드 · 좌표 · 줌 · FPS)

상호표정과 절대표정은 같은 워크스페이스를 씁니다

두 작업은 좌/우 뷰포트·측정·에피폴라 정렬·줌 동기화를 그대로 공유하고 작업 모드만 전환됩니다. 관측 흐름이 끊기지 않도록 한 설계입니다.


표준 작업 흐름

카메라 등록 → 이미지 등록 · 카메라 지정 → 내부표정
   → 모델 생성(좌/우 쌍) → 타이포인트 · 상호표정
   → GCP 관측 · 절대표정

각 단계의 진행 상태는 표정 개요에서 한눈에 확인합니다.


기능 개요

대시보드

프로젝트 상태를 한눈에 파악하는 시작 페이지입니다.

  • 요약 카드 4개: 카메라 수, GCP 수, 이미지 수, 모델 수
  • 프로젝트 상세 테이블: 이름, 카메라, GCP, 이미지, IO, 모델, RO, AO
  • TMS 타일 지도: 줌/팬, 7개 프리셋, 역지오코딩 (VWorld API)

자세한 내용: 대시보드

표정 파이프라인

단계 문서
이미지 등록 · 카메라 지정 · 피라미드 이미지 관리
지표 관측 / 센서 기하 자동 내부표정
좌/우 쌍 생성 모델 관리
타이포인트 · 공면조건 솔브 상호표정
GCP 관측 · 7-파라미터 절대표정
진행 상태 조망 표정 개요

뷰어

  • 단일 뷰어 — Vulkan GPU 가속, 무손실 경로 우선, 서브픽셀 관측
  • 멀티뷰 — 여러 이미지 동시 표시, 레이아웃 프리셋, 줌·팬 동기화

자세한 내용: 이미지 뷰어 · 멀티뷰

기준 데이터

  • 카메라: 34개 내장 프리셋, 내부표정 요소 · 센서 연동 — 카메라 관리
  • GCP: 가져오기/내보내기, 타입 분류 — GCP 관리
  • 좌표계: EPSG 데이터베이스 기반 — 좌표계 설정

MDI 문서 편집기

QMdiArea 기반 다중 문서 인터페이스입니다.

  • 새로 만들기 / 열기 / 저장 / 다른 이름으로 저장
  • 타일 배열 / 종렬 배열 / 모두 닫기

자세한 내용: MDI 편집기

전역 설정

20개 설정 카드로 앱을 세밀하게 조정합니다.

  • 일반: 언어, 시작 동작
  • 테마/외관: 다크/라이트, 폰트
  • 지도: TMS 프리셋 (7종), API 키 (VWorld/Stamen)
  • 고급: 로깅, 성능, 서버 포트
  • 좌표계: EPSG 데이터, 필터
  • MCP 서버: 포트, 클라이언트 수, 활성화
  • 계정: 포탈 로그인 (Google OAuth)

자세한 내용: 전역 설정

협업 포탈 연동

타이틀바 버튼으로 협업 포탈에 접속합니다.

  • 포탈 버튼: 협업 포탈 웹 페이지 열기
  • 이슈 보고 버튼: 이슈 작성 페이지 열기 (로그인 시만 활성)
  • 설정 > 계정 페이지에서 Google OAuth 로그인

자세한 내용: 협업 포탈


MCP 에이전트 연동

TCP 소켓(포트 9234) + JSON-RPC 2.0 프로토콜로 LLM 에이전트가 앱을 원격 제어합니다. 약 290개 MCP 명령으로 페이지 전환, 위젯 조작, 표정 계산, 관측 입력까지 자동화가 가능합니다.

카테고리 주요 명령
시스템 ping, system.getVersion, system.listCommands
UI 위젯 ui.findWidget, ui.clickWidget, ui.captureWindow
마우스 · 키보드 mouse.click, mouse.drag, keyboard.sendKey
네비게이션 nav.select, nav.getState
앱 설정 app.setTheme, app.setEpsgCode
표정 · 관측 model.*, io.*, at.* (도메인 개관 참조)

명령 수는 계속 늘어나므로 전체 목록은 system.listCommands 로 조회합니다.

자세한 내용: MCP 명령 레퍼런스


WinUI 3 스타일 UI

GeoOmni는 Qt 6 위에 WinUI 3의 디자인 언어를 구현합니다:

요소 구현
Mica 배경 DWM API DwmSetWindowAttribute
NavigationView 커스텀 QWidget (펼침/접힘 애니메이션)
다크/라이트 모드 런타임 전환 + Windows 시스템 감지
커스텀 타이틀바 48px 높이, 드래그 영역, 시스템 버튼
둥근 모서리 CSS border-radius, QPainterPath
Acrylic 효과 반투명 배경 (NavigationView)