cityjson / specs

Specifications for CityJSON, a JSON-based encoding for 3D city models
https://cityjson.org
Creative Commons Zero v1.0 Universal
108 stars 25 forks source link

tiling large datasets? #18

Closed hugoledoux closed 2 years ago

hugoledoux commented 6 years ago

For large datasets (say a city) it would be good to be able to tile the dataset into subparts, eg neighbourhood and/or a fixed tiling (a grid or quadtree). And then have a master file linking everything.

The OGC has the OGC Testbed-13: Vector Tiles Engineering Report, which seems relevant.

balazsdukai commented 6 years ago

I'll look into it as the topic is relevant for the 3d bag as well.

derhuerst commented 5 years ago

Any updates on this? I'm currently fiddling with large CityGML datasets and wondering wether to focus on CityJSON or something like Cesium 3D tiles.

BWibo commented 5 years ago

In case this is not known: The 3dcitydb/importer-exporter supports tiled export of CityGML datasets.

hugoledoux commented 5 years ago

and 3dcitydb will support CityJSON soon. It's in beta and will be released soon.

@clausnagel knows more, right?

balazsdukai commented 5 years ago

@derhuerst I worked on it a bit (see https://github.com/tudelft3d/cjio/pull/12 ), but it's not in a usable state yet. I mostly explored what these 3d tiles are about and what it takes to generate them.

The current opinion is that tiling is done by a software implementation (eg. 3dcitydb, cjio etc.) according to the requirements of the use case and target data format. So tiling is not governed/prescribed by the cityjson data model. Sure, we could put together yet another tile format that is pure cityjson or some variation of it, but then we are at square one again, since no software or library can read it.

Now, if we discover that the current data model seriously hinders any tiling method, then that's a different issue. In which case we'll accommodate the data model. There is research ongoing in our group related to this topic.

Whether to use cesium's 3d tiles or any other tiling system depends on your use case. Whether you only need it to display in some viewer or only need to run analytics, or both... If you need visualization, then certainly one of the tiling schemes will help you since you have viewers available that can read them.

clausnagel commented 5 years ago

@hugoledoux, yes you are right. Importing CityJSON datasets into the 3dcitydb is already implemeted, but we are still working on the CityJSON export. In general, the 3dcitydb supports tiling a large dataset into a regular grid of non-overlapping tiles and makes sure that every city object is located on only one tile. So, this tiling would simply result in a set of CityJSON files, one for each tile.

I do not think that 3d tiles makes any assumption on how tiling should be applied to the data but supports arbitrary tiling strategies. I would agree with @balazsdukai that CityJSON should also leave tiling to the application.

However, 3d tiles defines a tileset.json metadata file which basically captures the entire tileset and provides links to the files that contain the data per tile. This enables, for instance, streaming of tiles in a viewer application. But in my opintion such a metadata file is neither required for CityJSON.

hugoledoux commented 2 years ago

We decided that tiling is outside the scope of CityJSON specs, this is left to the developers to deal with this and we shouldn't standardise it.