Skip to main content

I converted a gml data to cesium 3d tiles.It got converted to cesium 3d tiles correctly but the data is getting an extra added height.The 3d tiles data is not getting aligning properly with the basemap.The 3d tiles data is in the air.What could be the reason.Please check the attachment image.The tile is in the air.

Hard to tell, can you please share a template / workspace or sample data?

 

 


Reprojection issue? What is the source CRS?

Hi @san,

I've also experienced the same issue, unfortunately, I still do not know how to solve it.

citygml2null-cesium3dtiles.fmwt


Your CityGML (or gml) has an elevation, the basemap does not have an elevation set. You either need to add a terrain layer to your map or you need to remove the elevation from the buildings before writing out.

You can use a BoundsExtracter to get the 'minz' value and then use an Offsetter to offset by -minz to get the models placed at the sea level.


Reprojection issue? What is the source CRS?
EPSG : 2180

 

 

 


Hard to tell, can you please share a template / workspace or sample data?

 

 

I cant give the entire sample,but can give bit of projections,

 

 

 


797525.19 326602.00 219.21
797525.19 326602.00 215.59
797537.19 326605.27 215.59
797537.19 326605.27 219.25
797525.19 326602.00 219.21

I feel that height values are making the tiles to project in the air.What can i do to solve this issue.

Your CityGML (or gml) has an elevation, the basemap does not have an elevation set. You either need to add a terrain layer to your map or you need to remove the elevation from the buildings before writing out.

You can use a BoundsExtracter to get the 'minz' value and then use an Offsetter to offset by -minz to get the models placed at the sea level.

Can you brief me the process or could you share me any sample examples for using an offset.

 

 


Can you brief me the process or could you share me any sample examples for using an offset.

 

 

So the 'BoundsExtractor' transformer can be used to get the extents of each feature. Each feature will have several new attributes including 'minz' the minz will be the lowest point that feature has. The 'Offsetter' transformer can then be used to shift the data. You want to use the negative value of minz - you can use an ExpressionEvaluator to calculate this. Here's how you could do it below.

 

 

 


So the 'BoundsExtractor' transformer can be used to get the extents of each feature. Each feature will have several new attributes including 'minz' the minz will be the lowest point that feature has. The 'Offsetter' transformer can then be used to shift the data. You want to use the negative value of minz - you can use an ExpressionEvaluator to calculate this. Here's how you could do it below.

 

 

 

i have done the transformation like this the translation was successful.But still the tiles are in the air.What could be the reason.i'm new to fme. Sorry if i have done anything wrong.

i have done the transformation like this the translation was successful.But still the tiles are in the air.What could be the reason.i'm new to fme. Sorry if i have done anything wrong.
After the offsetter, add in an inspector to see the results before it gets written out to 3D tiles. Click on a Feature to see if its z coordinates (height) are set to zero. You can see this by clicking on a feature and looking the in feature information window on the right. Look for min extents. The image I've attached has a minz of about 3 m.

 

 

 

If the result is not 0, check that the expression is correct and the attribute being used in the correct attribute. After the ExpressionEvaluator the _minz value should be a negative number.

 

 


Reply