Constructing and serving buildings 2.5D
In the Detailed building footprints from LiDAR recipe in Chapter 4, Working with Vector Data - Advanced Recipes, we explored the automatic generation of building footprints using LiDAR data. What we were attempting to do was create 2D data from 3D data. In this recipe, we attempt the opposite, in a sense. We start with 2D polygons of building footprints and feed them into a function that extrudes them as 3D polygons.
Getting ready
For this recipe, we will extrude a building footprint of our own making. Let us quickly create a table with a single building footprint, for testing purposes, as follows:
DROP TABLE IF EXISTS chp07.simple_building;
CREATE TABLE chp07.simple_building AS
SELECT 1 AS gid, ST_MakePolygon(
ST_GeomFromText(
'LINESTRING(0 0,2 0, 2 1, 1 1, 1 2, 0 2, 0 0)'
)
) AS the_geom;
It would be beneficial to keep the creation of 3D buildings encapsulated as simply as possible in a function:
CREATE OR REPLACE FUNCTION chp07.threedbuilding...