Solved

OSM data to 3D buildings

  • 2 September 2016
  • 6 replies
  • 23 views

How to convert OSM data to 3D buildings using FME

icon

Best answer by crayxt 2 September 2016, 06:50

View original

6 replies

Badge

Example of data?

Example of data?

 

sorry i did'nt get your answer

 

 

Example of data? means

 

 

i am using .osm file

 

 

i loaded .osm file this is in 2D format in fme

 

and i want to convert that 2D to 3D using FME

 

Badge

 

sorry i did'nt get your answer

 

 

Example of data? means

 

 

i am using .osm file

 

 

i loaded .osm file this is in 2D format in fme

 

and i want to convert that 2D to 3D using FME

 

Sorry I meant to left a comment instead of an answer. If you have height attribute you just use extruder.

 

Example of data?

kk thank you

 

 

i am not having height attribute then what can i do

 

please suggest me i am new to FME

 

Userlevel 5
Badge +25

If you want it to look realistic you'll need to have some source of elevation data so that you can determine the height (above sea level) of the buildings, then use a 3DForcer to set the building polygons to that height and an Extruder with a negative distance to create a 3d block of the building.

However, this way will look bad if you have buildings with height differences as the entire building will get a single elevation.

This knowledge base article should give you some pointers about the process, but the key issue is that you have to have building height data.

 

Userlevel 4
Badge +25

Well it's not quite true that you need to create building height... provided someone in OpenStreetMap has entered that information already. For example, here is a building in New York as viewed in FME...

So in theory you just need to use an Extruder transformer set to the attribute storing the height of the building.

In practice, I picked New York because I was sure there would be building heights. Your area of data may not have that, in which case you would have to make one up.

You could either set a fixed value, or generate one with the RandomNumberGenerator. Another way would be to use the ExpressionEvaluator to calculate a height based on the building area (footprint) - on the basis that a larger building is likely to be taller.

Alternatively, if you can get hold of point cloud data you could generate the height of the building using that.

So, it's possible, it just depends what data you have and how accurate you want to be.

Reply