[postgis-tickets] r16937 - ST_Subdivide: support rect hole in rect shell
Darafei
komzpa at gmail.com
Mon Oct 22 08:23:38 PDT 2018
Author: komzpa
Date: 2018-10-22 08:23:38 -0700 (Mon, 22 Oct 2018)
New Revision: 16937
Modified:
trunk/NEWS
trunk/liblwgeom/lwgeom.c
trunk/regress/core/subdivide.sql
trunk/regress/core/subdivide_expected
Log:
ST_Subdivide: support rect hole in rect shell
Closes #4211
Closes https://github.com/postgis/postgis/pull/317
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2018-10-22 08:02:50 UTC (rev 16936)
+++ trunk/NEWS 2018-10-22 15:23:38 UTC (rev 16937)
@@ -23,6 +23,8 @@
- #4188, Avoid division by zero in kmeans (Raúl Marín)
- #4189, Fix undefined behaviour in SADFWrite (Raúl Marín)
- #4191, Fix undefined behaviour in ptarray_clone_deep (Raúl Marín)
+ - #4211, Fix ST_Subdivide for minimal exterior ring with minimal hole (Darafei
+ Praliaskouski)
PostGIS 2.5.0
2018/09/23
Modified: trunk/liblwgeom/lwgeom.c
===================================================================
--- trunk/liblwgeom/lwgeom.c 2018-10-22 08:02:50 UTC (rev 16936)
+++ trunk/liblwgeom/lwgeom.c 2018-10-22 15:23:38 UTC (rev 16937)
@@ -2294,7 +2294,7 @@
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++)
Modified: trunk/regress/core/subdivide.sql
===================================================================
--- trunk/regress/core/subdivide.sql 2018-10-22 08:02:50 UTC (rev 16936)
+++ trunk/regress/core/subdivide.sql 2018-10-22 15:23:38 UTC (rev 16937)
@@ -58,3 +58,5 @@
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 );
Modified: trunk/regress/core/subdivide_expected
===================================================================
--- trunk/regress/core/subdivide_expected 2018-10-22 08:02:50 UTC (rev 16936)
+++ trunk/regress/core/subdivide_expected 2018-10-22 15:23:38 UTC (rev 16937)
@@ -5,3 +5,4 @@
#3522|POINT(1 1)
#3744|1600000000000000
4|29321996468.6|29321996468.6|1857|256
+#4211|0.00008316000
More information about the postgis-tickets
mailing list