[postgis-devel] [PostGIS] #1806: Extremely slow and CPU-intensive ST_MakeValid (ST_BuildArea) case

PostGIS trac at osgeo.org
Sat May 12 12:39:06 PDT 2012


#1806: Extremely slow and CPU-intensive ST_MakeValid (ST_BuildArea) case
----------------------+-----------------------------------------------------
  Reporter:  strk     |       Owner:  strk         
      Type:  defect   |      Status:  closed       
  Priority:  high     |   Milestone:  PostGIS 2.0.1
 Component:  postgis  |     Version:  2.0.x        
Resolution:  fixed    |    Keywords:               
----------------------+-----------------------------------------------------

Comment(by aperi2007):

 One of the main goal of ST_MakeValid is to do not lost any vertex.
 This is a strong choice of cocurse, but is the only strategy to allow an
 user to have all the vertex in a tabel and allow a posst processing phase
 to repair better the geometries.
 Infact in a geometry like this:
 [[BR]]

 {{{
  -----------------
 |                 |
 |     -------     |
 |    |       |    |
 |     -------     |
 |                 |
  -----------------

 }}}

 For some impredictable situations could became like this:


 {{{
  -----------------
 |                 |
 |                 |
 |    --------     |
 |                 |
 |                 |
  -----------------

 }}}

 That is surely an invalid Polygon.

 A strategy to transform this in a collection with this two parts:

 {{{
  -----------------
 |                 |
 |                 |
 |                 |  +    --------
 |                 |
 |                 |
  -----------------

 }}}

 Will allow to load this two geometri parts in two tables and working
 because this are both two valid geometries.

 After this, a power user could surely analyze the two parts (polygons and
 lines ) and rearrange the lines restoring the original size (the hole in
 the polygon).

 Instead a strategy where the line is lost returning only the external
 polygon like this:


 {{{
  -----------------
 |                 |
 |                 |
 |                 |
 |                 |
 |                 |
  -----------------

 }}}

 Will deny any possibility to restoring the original hole.

 A strategy like this don't allow to use the DB as a startup for an editing
 of any kind of geometry.

-- 
Ticket URL: <http://trac.osgeo.org/postgis/ticket/1806#comment:21>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-devel mailing list