Now that we have a 3D-building extrusion function, we can easily extrude our building footprint with our nicely encapsulated function:
DROP TABLE IF EXISTS chp07.threed_building; CREATE TABLE chp07.threed_building AS SELECT chp07.threeDbuilding(the_geom, 10) AS the_geom FROM chp07.simple_building;
We can apply this function to a real building footprint dataset (available in our data directory), in which case, if we have a height field, we can extrude according to it:
shp2pgsql -s 3734 -d -i -I -W LATIN1 -g the_geom building_footprints\chp07.building_footprints | psql -U me -d postgis-cookbook \
-h <HOST> -p <PORT>
DROP TABLE IF EXISTS chp07.build_footprints_threed; CREATE TABLE chp07.build_footprints_threed AS SELECT gid, height, chp07.threeDbuilding(the_geom, height) AS the_geom FROM chp07.building_footprints;
The resulting output gives us a nice, extruded set of building footprints, as shown in the following image:

The Detailed building footprints from LiDAR recipe in Chapter 4, Working with Vector Data - Advanced Recipes, explores the extraction of building footprints from LiDAR. A complete workflow could be envisioned, which extracts building footprints from LiDAR and then reconstructs polygon geometries using the current recipe, thus converting point clouds to surfaces, combining the current recipe with the one referenced previously.