Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a dataset of building footprints vectorised from a raster dataset. The dataset is currently just a vector representation of the raster data. I would like a polygon dataset that only has vertices at the corners of the building. I have attempted to use the Simplify command in PostGIS with limited success. Is there a better way?

share|improve this question
up vote 13 down vote accepted

There are many algorithms dedicated to building simplification. You may have a look at this website for an overview. See also this question. You could use:

  • Building outline simplification: It consist in recursively deleting too short edges of the outline and lengthening the neighbor edges. Example:

alt text

  • Smallest surrounding rectangle algorithm: It consist in replacing the building geometry by the smallest surrounding rectangle. This rectangle can also be scaled to the building initial area. Example:

alt text

  • Squaring algorithm: It consists in applying a light rotation to edges to make the corners perfectly squared. Example:

alt text

These transformations may be enough for your need. It can be interesting to combine them.

I am almost 100% sure none of these algorithms are implemented in PostGIS. Some are implemented in the Opencarto java library I am developing. Let me know if you want to test it!

share|improve this answer
Thanks, it would be good to test Opencarto. – Matthew Snape Nov 24 '10 at 12:47
geometry ST_SimplifyPreserveTopology(geometry geomA, float tolerance);

Will avoid creating derived geometries (polygons in particular) that are invalid

should be a better output than Simplify

check your geometry first and after with ST_IsSimple(geometry geomA);

share|improve this answer

Just a thought -- I wonder if something like this might do the trick:

"If we buffer by a large amount, then reverse the buffer by the same amount, we’ll get something that has a similar shape to the original, but without the crinkly bits."

share|improve this answer
that's an interesting approach and it seems relatively effective. Thanks for the pointer, it's something I'll be able to use. Your answer would be better if it contained a simple phrase containing the core idea being referenced and wasn't just a link. – matt wilkie Jan 12 '11 at 0:51

etgeo-wizards has a routine to do this. Ianko

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.