Slide 1

Slide 1 text

(CityJSON == CityGML) && (CityGML == CityJSON) Geonovum sessie over 3D Amersfoort 2023-10-03 Hugo Ledoux TUDelft

Slide 2

Slide 2 text

(CityJSON == CityGML) && (CityGML == CityJSON) Geonovum sessie over 3D Amersfoort 2023-10-03 Hugo Ledoux TUDelft Full disclosure: I started CityJSON and I’m still an editor

Slide 3

Slide 3 text

2 International standard (from OGC) for representing and storing semantic 3D city models v1.0 in 2008 v2.0 in 2012 v3.0 in 2021 & 2023

Slide 4

Slide 4 text

3 Data model XML/GML encoding 4 encodings 3D City DB cjdb

Slide 5

Slide 5 text

4 Data model == UML Encoding == XML or JSON or … { "type": “CityJSON", "version": “2.0”, "transform": { "scale": [1.0, 1.0, 1.0], "translate": [0.0, 0.0, 0.0] }, "metadata": { "referenceSystem": "https://www.opengis.net/def/crs/EPSG/0/7415" }, "CityObjects": { "id-1": { "type": "Building", "attributes": { "measuredHeight": 22.3, "owner": “Elvis Presley" }, "geometry": [ { "type": “MultiSurface", "lod": “2.1", "boundaries": [ [[0, 3, 2, 1]], [[4, 5, 6, 7]], [[0, 1, 5, 4]] ] } ] } }, "vertices": [ [231, 2321, 11], [1111, 321, 12], ... ], "appearance": { "materials": [], "textures":[] } }

Slide 6

Slide 6 text

CityGML v3.0 5 • Adds interior of buildings (rooms, storeys, etc) • no more LoD4 • Adds point clouds, versioning, etc. • Revamp of the ADE mechanism Data model released in 2021

Slide 7

Slide 7 text

CityGML-XML v3.0 6 XML encoding released in June 2023 • No software support at the moment: FME will **not** work • Except citygml4j (from the main CityGML developer)

Slide 8

Slide 8 text

CityGML files are very complex 7 • files are deeply nested, and large • many “points of entry” • many di ff ways to do one thing ➡ few software packages correctly read/write CityGML-XML ➡ no parsers in JavaScript ➡ I personally get 😩 each time I get a new file it makes the life of developers very unpleasant

Slide 9

Slide 9 text

CityGML files are very complex 7 • files are deeply nested, and large • many “points of entry” • many di ff ways to do one thing ➡ few software packages correctly read/write CityGML-XML ➡ no parsers in JavaScript ➡ I personally get 😩 each time I get a new file it makes the life of developers very unpleasant

Slide 10

Slide 10 text

v2.0 just released! Approved by CityGML v3.0 conformant

Slide 11

Slide 11 text

CityJSON v2.0 implements most of CityGML data model 9 • all core modules of CityGML data model v3.0 are mapped 💪 • Subset of CityGML core (~97% of features) • Modules not supported is on purpose (to keep it simple)

Slide 12

Slide 12 text

GIS specialists do not all use/have FME: Python parsing is very easy 10 CityJSON makes developers happy (and thus productive)

Slide 13

Slide 13 text

It’s ready for the web 11

Slide 14

Slide 14 text

It’s ready for the web 11

Slide 15

Slide 15 text

Compression of files: Zürich LoD2 buildings 12 CityGML-XML v2.0 = 3.0GB (but 1GB of spaces/CRs/tabs!) CityJSON v2.0 = 292MB Compression == 7.1X

Slide 16

Slide 16 text

Compression of files: Zürich LoD2 buildings 12 CityGML-XML v2.0 = 3.0GB (but 1GB of spaces/CRs/tabs!) CityJSON v2.0 = 292MB Compression == 7.1X

Slide 17

Slide 17 text

CityJSON support in software 13 Good list of software Most are open-source Many written by students at TUDelft

Slide 18

Slide 18 text

(CityJSON == CityGML) && (CityGML == CityJSON)

Slide 19

Slide 19 text

citygml4j + citygml-tools 15 full conversion CityGML <-> CityJSON • Supports CityGML-XML v3.0 • Bidirectional conversion • Open-source

Slide 20

Slide 20 text

CityJSON 🔄 CityGML 16

Slide 21

Slide 21 text

CityJSON 🔄 CityGML 16

Slide 22

Slide 22 text

Certainly it can’t be that simple? Indeed, there are 2 caveats 17 #1. ADEs != Extensions #2. CityGML modules not supported in CityJSON

Slide 23

Slide 23 text

thank you. [email protected] 3d.bk.tudelft.nl/hledoux Hugo Ledoux https://cityjson.org https://citygml.org 3DBAG has all 10M buildings in NL in CityJSON