CityJSON vs CityGML: Optimizing 3D Urban GIS Data for Web Browsers
Analyze the architectural shift from heavy GML XML schemas to CityJSON. Stream 3D city models, building footprints, and semantic terrain data with minimal memory footprints.
Open Geospatial Consortium (OGC) standards like CityGML provide deep semantic structures for urban scale models. However, parsing massive XML files inside browser threads limits real-time web rendering performance.
1. The Structural Overhead of CityGML XML
CityGML models store 3D city objects using GML schemas. While ideal for desktop GIS databases, verbose XML tags cause high network payload sizes and slow client-side DOM parsing during browser initialization.
2. CityJSON: Compressed Vertex Topologies for WebGL
CityJSON solves transmission bottlenecks by indexing shared vertices in a single array. By avoiding repeated coordinate definitions, CityJSON reduces file sizes by up to 80% while remaining 100% compatible with CityGML 2.0 and 3.0 semantic classes.
3. Rendering Level of Detail (LOD0 - LOD4) in Three.js
Parse CityJSON objects dynamically on client-side threads using web workers. Convert semantic geometries directly into instanced meshes to stream entire smart-city districts with customized LOD rendering routines.