-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for CityGML 3.0 Dynamizers #11
Comments
Hi @joemureithi, the CityGML 3.0 modules |
Hi @clausnagel, this is unfortunate, because especially dynamizers and versioning are a decisive improvement of CityGML 3.0 for urban digital twins. E.g., Joseph is using Dynamizers for the automated generation of dynamic 3D/4D web visualizations and we intended to use the 3DCityDB exactly to manage this... Can we have an online meeting to discuss our options on this in mid January? Best regards, Thomas |
Hi @clausnagel, am I correct, if I assume that "only" the proper mappings in the sub folder citydb-io-citygml are missing? I assume that citygml4j allows to read and write Dynamizers, Versioning, and Pointcloud features? |
@thomashkolbe, citygml4j has support for all three modules. But for the database, I think more is needed. Dynamizer: Although the solution using uninterpreted strings sounds straight-forward, there is one pitfall. XPath expressions are context-sensitive. For example, assume we have a Pointcloud: If the point cloud is stored as separate LAS/LAZ file and the CityGML file only contains a reference to this file, then importing this file reference is pointless in case the reference is just local and not some global URL. So, in case of local references, we would need some mechanism to upload and store the point cloud. But again, LAS/LAZ files can become huge. Should we really store them in the database? Or is there a better alternative? Needs more discussion, I guess. Versioning: |
Concerning the implementation of point clouds: |
Thanks @beneschwab for pointing to this. It's a good example for what I meant with using a "specialized geometry type for point clouds". We would have to examine what it needs to use this extension (changes to the schema, which tools can we use to support it, can this be integrated into the citydb-tool and what if not, can we have an abstraction layer that would work for different database types like PostgreSQL and Oracle, etc.). |
Hi @clausnagel, thanks for the response and the detailed explanation of the challenges. As you have pointed out, importing and exporting XPath expressions as uninterpreted strings would be limiting. For instance, if one directly adds Dynamizers to an imported dataset in a database, exporting to CityGML would require dynamic generation of the XPath expressions. |
In the first step, we don't need to implement a native pointcloud support in the 3DCityDB. Many people will just make use of the pointcloud capabilities of CityGML 3.0 to link to external files, which do not necessarily need to be read into the database. And if somebody represents the pointcloud using a MultiPoint geometry (because the number of points is not too large), we can simply use the already existing mapping to a MultiPoint geometry in the geometry table. This implementation would already allow to read and export again such CityGML files without losing any information. |
Regarding versioning: yes, the version objects of course should be stored as regular features in the object table. Because in this way, the management of versions and version transitions can be completely realised using a WFS or an OGC Feature API. Reading and maintaining the versioning information is again important, when somebody feeds a dataset with version data into the 3DCityDB and wants to analyse what has changed between the different versions. The question how to deal with extra database procedures for e.g. managing versions or delete scripts needs to be discussed, though. Nevertheless, it could be a two-step procedure and handling the versioning module in delete scripts is something that can then be developed once the support for storing versions and version transitions is available in the database. |
I wouldn't immediately agree that we should use the same tables for versioning information. But maybe you can propose a PR for the required changes? |
I would like to inquire about working with CityGML 3.0 datasets that contain Dynamizers. Are they currently supported, or will they be included in a future release?
I attempted an import using the examples provided in the official CityGML Encodings using the v0.6.1-beta version; however, the Dynamizers were missing from the import summary and the database.
Thank you.
The text was updated successfully, but these errors were encountered: