Development of an Extension of GeoServer for Handling 3D Spatial Data

Hyung-Gyu Ryoo · Pusan National University, STEMLab

FOSS4G 2017 · Boston, MA · 2017-08

FOSS4G 2017 · Hyung-Gyu Ryoo

Why a 3D extension?

  • OGC's spatial type system in Simple Features for SQL (SFS) is fundamentally 2D.
  • Mainstream open-source GIS — GeoServer / GeoTools / JTS — inherits that 2D world.
  • 3D city models, indoor maps, building footprints with elevation, geological data — all force a workaround (Z carried as attribute, not as geometry).
  • Goal: make 3D a first-class concept across the WFS → GeoTools → store stack, not a side channel.
FOSS4G 2017 · Hyung-Gyu Ryoo

The stack we touched

        Client (QGIS / browser)
                │  WFS-3D request
                ▼
        ┌──────────────────────┐
        │ GeoServer            │  WFS 2.0 handlers, GML output binding
        │  + 3D extension      │  → 3D coordinates preserved end-to-end
        └──────────────────────┘
                │
                ▼
        ┌──────────────────────┐
        │ GeoTools             │  Geometry model, schema, filter
        │  + 3D extension      │  → ISO 19107-aligned 3D types
        └──────────────────────┘
                │
                ▼
        ┌──────────────────────┐
        │ Store                │  PostGIS / SFCGAL backend
        └──────────────────────┘
FOSS4G 2017 · Hyung-Gyu Ryoo

What changed in GeoTools

  • Geometry model. Add Solid, CompositeSurface, Triangle, TIN — ISO 19107 SF-aware shapes that JTS doesn't carry.
  • Schema / SRS. Track CRS dimensionality (2D / 2.5D / 3D) so the binding layer doesn't silently drop Z.
  • Filter functions. Lift intersects, within, distance to 3D — delegate to an SFCGAL backend when the geometry is solid.
FOSS4G 2017 · Hyung-Gyu Ryoo

What changed in GeoServer

  • WFS request handlers. Recognize 3D-typed feature types and route them to the 3D-aware GeoTools path.
  • GML output binding. Emit gml:Solid, gml:TriangulatedSurface, etc. for 3D geometries instead of degrading to 2D.
  • Store hookup. Surface a SFCGAL-backed PostGIS store as a regular GeoServer data store.
FOSS4G 2017 · Hyung-Gyu Ryoo

Limitations & future work

  • Renderer client. Browsers and most GIS desktops were not 3D-rendering WFS responses in 2017 — QGIS was the most reliable testbed.
  • Spec gap. OGC's WFS-3D / GML-3D pieces were in flux; we tracked the strictest reading of GML 3.2 SF-1.
  • Performance. SFCGAL is correct but slow; large 3D feature collections need streaming + spatial indexing tuned for BBox3D.
FOSS4G 2017 · Hyung-Gyu Ryoo

Resources

Thanks!

FOSS4G 2017 · Hyung-Gyu Ryoo