Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Hugo Ledoux
October 03, 2023

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

Slides of a talk I gave at the "Geonovum sessie over 3D" on 2023-10-03 in Amersfoort, the Netherldands.

https://www.geonovum.nl/over-geonovum/agenda/3-oktober-3d-wat-is-er-wat-kies-je-en-wat-kan-er-straks-nog-meer

Hugo Ledoux

October 03, 2023
Tweet

More Decks by Hugo Ledoux

Other Decks in Research

Transcript

  1. (CityJSON == CityGML)


    &&


    (CityGML == CityJSON)


    Geonovum sessie over 3D


    Amersfoort


    2023-10-03
    Hugo Ledoux


    TUDelft

    View Slide

  2. (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

    View Slide

  3. 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

    View Slide

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

    View Slide

  5. 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":[]


    }


    }


    View Slide

  6. 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

    View Slide

  7. 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)

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

  10. v2.0


    just released!
    Approved by


    CityGML v3.0
    conformant

    View Slide

  11. 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)

    View Slide

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

    View Slide

  13. It’s ready for the web
    11

    View Slide

  14. It’s ready for the web
    11

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

  17. CityJSON support in software
    13
    Good list of software


    Most are open-source


    Many written by students at TUDelft

    View Slide

  18. (CityJSON == CityGML)


    &&


    (CityGML == CityJSON)


    View Slide

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


    • Bidirectional conversion


    • Open-source

    View Slide

  20. CityJSON 🔄 CityGML
    16

    View Slide

  21. CityJSON 🔄 CityGML
    16

    View Slide

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

    View Slide

  23. 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

    View Slide