Question

How to generate 3d citygml road data

  • 7 July 2020
  • 1 reply
  • 7 views

I want to produce 3d citygml road model (textured). I have road line data as shapefile and lidar data of the region (both aerial and terrestrial) and also orthophoto (10cm res). Is it possible to produce 3D citygml road data with these data using FME possibilities? Thank you.


1 reply

Userlevel 4
Badge +26

Texturing should be the last step. You want to work with Polygons as much as you can here I think.

 

 

You mention you have road line data as an input? Is the outline of the roads like polygons? or it it just lines representing the centerlines?

 

 

If center lines then you will need some way to create the proper outlines of the roads, (not an easy task).

 

 

If road outlines then you will need a way to get the polygons/lines into 3D with correct z values. (also not so easy) - Check out the SurfaceDraper.

 

 

If you already have correct heights for the roads then I think it shouldn't be too hard. You will need to convert the lines/polygons into surfaces and then use the Orthophoto to apply the textures with TopDownGeoreferenced.

 

 

Back to getting the from 2D to 3D. There are a couple of approaches. The first being to use a SurfaceDraper over your Lidar or terrain data (play around with a PointCloudSimplier and the Tolerance in the SurfaceDraper to try and make the resulting surface as smooth as possible). This is likely to cause a few spikes though but it's worth a shot to see the result. Note for the best result you will need the roads to be polygons not lines. This approach will probably give you pretty bumpy/wavy roads - maybe that's good enough as a start.

 

Unfortunately when building a surface model in FME it's fairly tricky to get a nice smooth result. I hate to say it but ArcGIS has more options for using breaklines (if you have them) and getting areas like Roads so be consistent.

 

 

Once you have the draped polygons I would use a Triangulator to get planer faces, use a MeshMerger grouping by the road id to get a mesh per road id. Then you can look at texturing.

 

 

I think the result of this approach could be passable, however, the roads might look pretty rough. For smooth roads I think you may have to do a bit of manual work in an editor.... :-/

 

 

Maybe there are others who have a different approach?

 

 

Reply