Skip to content

Commit

Permalink
ST_Subdivide: support rect hole in rect shell
Browse files Browse the repository at this point in the history
Closes #4211
Closes #317


git-svn-id: http://svn.osgeo.org/postgis/branches/2.5@16938 b70326c6-7e19-0410-871a-916f4a2858ee
  • Loading branch information
Komzpa committed Oct 22, 2018
1 parent d646c02 commit 4e27799
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 2 deletions.
3 changes: 2 additions & 1 deletion NEWS
Expand Up @@ -8,7 +8,8 @@ XXXX/XX/XX
- #4191, Fix undefined behaviour in ptarray_clone_deep (Raúl Marín)
- #4020, Fix leftovers in topology upgrade from 2.1 (Sandro Santilli)
- #4206, Fix support for PostgreSQL 12 dev branch (Laurenz Albe)

- #4211, Fix ST_Subdivide for minimal exterior ring with minimal hole (Darafei
Praliaskouski)

PostGIS 2.5.0
2018/09/23
Expand Down
2 changes: 1 addition & 1 deletion liblwgeom/lwgeom.c
Expand Up @@ -2353,7 +2353,7 @@ lwgeom_subdivide_recursive(const LWGEOM *geom, uint8_t dimension, uint32_t maxve
lwpoly = (LWPOLY *)geom;

/* if there are more points in holes than in outer ring */
if (nvertices > 2 * lwpoly->rings[0]->npoints)
if (nvertices >= 2 * lwpoly->rings[0]->npoints)
{
/* trim holes starting from biggest */
for (i = 1; i < lwpoly->nrings; i++)
Expand Down
2 changes: 2 additions & 0 deletions regress/subdivide.sql
Expand Up @@ -58,3 +58,5 @@ FROM big_polygon_sliced gs;

drop table big_polygon;
drop table big_polygon_sliced;

select '#4211', (select sum(ST_Area(geom))::numeric(12,11) from ST_Subdivide('MULTIPOLYGON(((-88.2059 41.7325,-88.2060 41.7244,-88.1959 41.7241,-88.1959 41.7326,-88.2059 41.7325),(-88.1997 41.7289,-88.1996 41.7285,-88.1990 41.7285,-88.1990 41.7289,-88.1997 41.7289)))') geom );
1 change: 1 addition & 0 deletions regress/subdivide_expected
Expand Up @@ -5,3 +5,4 @@ ERROR: lwgeom_subdivide: cannot subdivide to fewer than 5 vertices per output
#3522|POINT(1 1)
#3744|1600000000000000
4|29321996468.6|29321996468.6|1857|256
#4211|0.00008316000

0 comments on commit 4e27799

Please sign in to comment.