Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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
add comment

4 Answers

up vote 12 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
1  
Thanks, it would be good to test Opencarto. –  Matthew Snape Nov 24 '10 at 12:47
add comment

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."

http://blog.opengeo.org/2010/11/22/removing-complexities/

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
add comment

etgeo-wizards has a routine to do this. Ianko

share|improve this answer
add comment
geometry ST_SimplifyPreserveTopology(geometry geomA, float tolerance);

Will avoid creating derived geometries (polygons in particular) that are invalid http://www.postgis.org/documentation/manual-1.5SVN/ST_SimplifyPreserveTopology.html

should be a better output than Simplify

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

share|improve this answer
add comment

Your Answer

 
discard

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.