How to overwrite SRS in CityGML Data

Hi Cesium Team,

I need a support to overwrite my SRS during conversion from CityGML to 3D Tiles.
I saw this as image below:

may cesium team assist me how do I can use this?

Thanks,
Saharil

Hi

Are you trying to use this with the on-prem 3D Tiling Pipeline or on Cesium ion (cloud)?

Shehzan

Hi,

I’m using on-prem 3D Tiling Pipeline…

Saharil

Hi,

Anyway, I already solve the problem by overwrite the SRS. But I get another problem. I tried to clamp to my terrain as well but its doesn’t work, even though the result show it successfully.

I need help to make it clamp to the terrain. Hope Cesium team can assist on this issue

Thanks
Saharil

CityGML doesn’t have any notation for an object to be placed on the ground. The spec doesn’t provide an automated way to detect whether a an object should be on the ground, underground, or floating in the air.

To work around this, we detect whether a CityObject (building) has one of the follow features / sub-objects to determine if the building should be placed on the ground.

CityFurniture
GroundSurface
Track
Road
Railway
Square
ReliefFeature
LandUse
TransportationObject

If the CityObject doesn’t have any of these features, then we place it at its absolute location, which may result in it floating in the air.

Can you confirm whether your CityGML objects have one of the above features?

Sure, I will confirm it soon on next week

Thanks,
Saharil

Hi Shenzan,

Anyway, I was check and didn’t found the notation that you had mentioned above.
I shared data ID that I was uploaded in cesium ion : 1385797.

Any solution on how to make it happen clamp to my terrain data?
I hope your team have another ideas…

Thanks,
Saharil

Hi Saharil

When you are generating the building data, you will need to ensure that at least one of the properties above is used. The easiest way would be to have the bottom of the building be designated as the “GroundSurface” in CityGML. All other parts of the building can be anything else.

Shehzan

Hello Everyone,
I have a little bit info regarding SRS in CityGML I hope it will be helpful for you.
In some cases, CityGML files do not specify a spatial reference system (SRS) which is required for any viewer visualize or convert the data. We could deal with this in ion in 3 ways:

  1. Detect a missing SRS as part of the upload process. This should be possible for small files, but may prove difficult for mult-gigabyte citygml files (we’ll have to experiment with how fast the browser can scan the file). We can detect it on the server either way.
  2. Allow the user to specify or override the SRS through the UX. Our offline tools can already do this, we just need to expose it. This can happen pre-upload.
  3. If data without an SRS is uploaded to the server (either because we failed to detect it client side or because it came in via the REST API outside of our control) we can let the set the SRS after-the-fact and then reconvert the data.
  4. If something went wrong more then you have one more option to do that.

HI Muhammad Hamza

You are absolutely right that detecting the SRS on upload is almost impossible in CityGML. This is not only because of the size of file, but also the fact that CityGML does not have a single mandatory place for the SRS, and the spec even allows for multiple SRS use in the same file.

Allow the user to specify or override the SRS through the UX. Our offline tools can already do this, we just need to expose it. This can happen pre-upload.

This is something we have discussed and have an issue internally for. The pipelines in the backend support this, we need to expose it on the frontend UI.

If data without an SRS is uploaded to the server (either because we failed to detect it client side or because it came in via the REST API outside of our control) we can let the set the SRS after-the-fact and then reconvert the data.

This is more complicated that it may appear at first glance to allow users to do. While a fair idea, probably allowing override of the SRS is a more straightforward option.

Shehzan