GML
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
CityGML Urban Model Preview.
At a glance
| Purpose | A CityGML (or generic GML) file: 3D city models with buildings and other features made of bounded surfaces. |
| Extensions | .gml |
| Poka parser | poka-citygml |
| Viewer | poka-3d-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-citygml/src/main.rs (448 lines) and plugin.json. Six unit tests cover single walls from pos elements, posList with srsDimension, two buildings and refusals; the corpus has five .gml samples, read by no test. Covers .gml and .citygml. The parser walks the city objects and their bounded surfaces (walls, roofs, grounds), reads polygon rings from pos or posList, recentres large projected coordinates and fan-triangulates each ring into one mesh per feature for the 3D viewer. Judgement: B3: the geometry is drawn, but attributes, semantics and appearance are not shown.
What Poka does not read
- Attributes (names, heights, functions, addresses) and generic attributes are not shown
- Surface semantics (wall, roof, ground) are not distinguished in the view (judgement from the code)
- Appearance (textures, materials) is not read
- Level of detail is not selected: all LoDs present are drawn together (judgement from the code)
- Polygon interiors (holes) are not cut out, and fan triangulation draws concave rings wrongly (judgement from the code)
- Files over 16 MiB are cut without a flag
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- roxmltree (used; MIT OR Apache-2.0; Rust)
- citygml4j (candidate; Apache-2.0; Java; https://github.com/citygml4j/citygml4j)
- 3DCityDB importer-exporter (candidate; Apache-2.0; Java; https://github.com/3dcitydb/importer-exporter)
- CityGML 3.0 encodings (XSD) (candidate; MIT; XML Schema; https://github.com/opengeospatial/CityGML-3.0Encodings)
- GDAL (candidate; MIT (LICENSE.TXT, per-file exceptions); C++; https://github.com/OSGeo/gdal)
Software that uses it
- CityGML / CityJSON
Sources
- parsers/poka-citygml/src/main.rs
- parsers/poka-citygml/plugin.json