GeoServer를 위한 3차원 공간 데이터 확장 모듈 개발

류형규 · 부산대학교 STEMLab

FOSS4G 2017 · 보스턴 · 2017-08

FOSS4G 2017 · 류형규

발표 배경

  • 이 발표는 국제 오픈소스 GIS 재단(OSGeo)이 주최하는 FOSS4G (Free & Open Source Software for GeoSpatial) 연례 컨퍼런스에서 한 발표이다.
  • 2017년 대회는 보스턴에서 열렸다.
  • 대상 시스템은 대표적인 오픈소스 공간 서버인 GeoServer, 그리고 그 기반 라이브러리인 GeoTools.
  • 핵심 메시지: 3차원 기하를 부수 속성이 아닌 일등 시민으로 다루도록 WFS — GeoTools — 저장소 전체를 손봤다.
FOSS4G 2017 · 류형규

왜 3D 확장이 필요한가

  • OGC Simple Features for SQL 사양의 기하 타입은 본질적으로 2D다.
  • GeoServer · GeoTools · JTS 모두 이 2D 세계관을 그대로 물려받음.
  • 3D 도시모델, 실내공간, 건물 풋프린트의 고도, 지질 데이터 — 모두 Z를 속성 컬럼으로 우회해서 다뤄야 함.
  • 목표: WFS 응답까지 3차원 좌표가 보존되도록 스택 전체를 3D-aware로 만든다.
FOSS4G 2017 · 류형규

손본 스택

        클라이언트 (QGIS / 브라우저)
                │  WFS-3D 요청
                ▼
        ┌──────────────────────┐
        │ GeoServer            │  WFS 2.0 핸들러, GML 출력 바인딩
        │  + 3D 확장           │  → 3D 좌표 보존
        └──────────────────────┘
                │
                ▼
        ┌──────────────────────┐
        │ GeoTools             │  기하 모델, 스키마, 필터
        │  + 3D 확장           │  → ISO 19107 정합 3D 타입
        └──────────────────────┘
                │
                ▼
        ┌──────────────────────┐
        │ 저장소               │  PostGIS / SFCGAL 백엔드
        └──────────────────────┘
FOSS4G 2017 · 류형규

GeoTools에서의 변경

  • 기하 모델. JTS에 없는 Solid, CompositeSurface, Triangle, TIN 등 ISO 19107의 3D 도형을 추가.
  • 스키마 · SRS. CRS의 차원성(2D / 2.5D / 3D)을 명시 추적하여 바인딩 단계에서 Z가 조용히 사라지는 일을 방지.
  • 필터 함수. intersects, within, distance 를 3D로 확장 — 솔리드 기하는 SFCGAL 백엔드에 위임.
FOSS4G 2017 · 류형규

GeoServer에서의 변경

  • WFS 요청 핸들러. 3D 타입의 피처를 인식하여 3D-aware GeoTools 경로로 라우팅.
  • GML 출력 바인딩. 3차원 기하에 대해 gml:Solid, gml:TriangulatedSurface 등으로 출력 (2D로 강등하지 않음).
  • 저장소 연결. SFCGAL 기반 PostGIS 저장소를 GeoServer의 일반 데이터 스토어로 노출.
FOSS4G 2017 · 류형규

한계와 후속 과제

  • 렌더링 클라이언트 부재. 2017년 시점에서 WFS 응답을 3D로 렌더링하는 클라이언트가 거의 없어, 사실상 QGIS가 유일한 테스트베드였다.
  • 사양 미정. OGC의 WFS-3D · GML-3D 부분이 유동적이어서 GML 3.2 SF-1의 가장 엄격한 해석을 기준으로 잡았다.
  • 성능. SFCGAL은 정확하지만 느리다. 대량 3D 피처에는 BBox3D 기반 공간 인덱스와 스트리밍 응답이 필요.
FOSS4G 2017 · 류형규

자료

감사합니다.

FOSS4G 2017 · 류형규