[postgis-tickets] [SCM] PostGIS branch stable-3.0 updated. 3.0.3-14-g9ef629f
git at osgeo.org
git at osgeo.org
Fri Feb 26 11:46:40 PST 2021
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.0 has been updated
via 9ef629f7d8c8c1b34a210d6f5ec8173cfb2af7b0 (commit)
from b99878850802c171fe406a63d3812194e788d74e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9ef629f7d8c8c1b34a210d6f5ec8173cfb2af7b0
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Fri Feb 26 10:36:44 2021 -0800
Ensure bboxes are refreshed after cooridinate transforms in scale/affine. References #4863
diff --git a/NEWS b/NEWS
index d8ac89d..f6dce68 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ PostGIS 3.04
- #4835, Adjust geodetic tolerance for calculations (Paul Ramsey)
- #4853, DBSCAN cluster not formed when recordset length equal to minPoints (Dan Baston)
- #4844, Repair axis order handling for polar coordinate systems (Paul Ramsey)
+ - #4863, Update bboxes after scale/affine coordinate changes (Paul Ramsey)
+
PostGIS 3.0.3
2020/11/20
diff --git a/liblwgeom/lwgeom.c b/liblwgeom/lwgeom.c
index a9fbfd4..8f9a570 100644
--- a/liblwgeom/lwgeom.c
+++ b/liblwgeom/lwgeom.c
@@ -2020,6 +2020,9 @@ lwgeom_affine(LWGEOM *geom, const AFFINE *affine)
}
}
+ /* Recompute bbox if needed */
+ if (geom->bbox)
+ lwgeom_refresh_bbox(geom);
}
void
@@ -2072,19 +2075,8 @@ lwgeom_scale(LWGEOM *geom, const POINT4D *factor)
}
/* Recompute bbox if needed */
-
- if ( geom->bbox )
- {
- /* TODO: expose a gbox_scale function */
- geom->bbox->xmin *= factor->x;
- geom->bbox->xmax *= factor->x;
- geom->bbox->ymin *= factor->y;
- geom->bbox->ymax *= factor->y;
- geom->bbox->zmin *= factor->z;
- geom->bbox->zmax *= factor->z;
- geom->bbox->mmin *= factor->m;
- geom->bbox->mmax *= factor->m;
- }
+ if (geom->bbox)
+ lwgeom_refresh_bbox(geom);
}
LWGEOM *
diff --git a/regress/core/tests.mk b/regress/core/tests.mk
new file mode 100644
index 0000000..ac83a58
--- /dev/null
+++ b/regress/core/tests.mk
@@ -0,0 +1,181 @@
+# **********************************************************************
+# *
+# * PostGIS - Spatial Types for PostgreSQL
+# * http://postgis.net
+# *
+# * Copyright (C) 2011-2020 Sandro Santilli <strk at kbt.io>
+# * Copyright (C) 2009-2011 Paul Ramsey <pramsey at cleverelephant.ca>
+# * Copyright (C) 2008-2009 Mark Cave-Ayland
+# *
+# * This is free software; you can redistribute and/or modify it under
+# * the terms of the GNU General Public Licence. See the COPYING file.
+# *
+# **********************************************************************
+
+POSTGIS_PGSQL_VERSION=130
+POSTGIS_GEOS_VERSION=39
+HAVE_JSON=yes
+HAVE_SPGIST=yes
+INTERRUPTTESTS=no
+
+current_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
+
+TESTS += \
+ $(topsrcdir)/regress/core/affine \
+ $(topsrcdir)/regress/core/bestsrid \
+ $(topsrcdir)/regress/core/binary \
+ $(topsrcdir)/regress/core/boundary \
+ $(topsrcdir)/regress/core/chaikin \
+ $(topsrcdir)/regress/core/filterm \
+ $(topsrcdir)/regress/core/cluster \
+ $(topsrcdir)/regress/core/concave_hull\
+ $(topsrcdir)/regress/core/ctors \
+ $(topsrcdir)/regress/core/curvetoline \
+ $(topsrcdir)/regress/core/dump \
+ $(topsrcdir)/regress/core/dumppoints \
+ $(topsrcdir)/regress/core/empty \
+ $(topsrcdir)/regress/core/estimatedextent \
+ $(topsrcdir)/regress/core/forcecurve \
+ $(topsrcdir)/regress/core/geography \
+ $(topsrcdir)/regress/core/geometric_median \
+ $(topsrcdir)/regress/core/hausdorff \
+ $(topsrcdir)/regress/core/in_geohash \
+ $(topsrcdir)/regress/core/in_gml \
+ $(topsrcdir)/regress/core/in_kml \
+ $(topsrcdir)/regress/core/in_encodedpolyline \
+ $(topsrcdir)/regress/core/iscollection \
+ $(topsrcdir)/regress/core/legacy \
+ $(topsrcdir)/regress/core/long_xact \
+ $(topsrcdir)/regress/core/lwgeom_regress \
+ $(topsrcdir)/regress/core/measures \
+ $(topsrcdir)/regress/core/minimum_bounding_circle \
+ $(topsrcdir)/regress/core/normalize \
+ $(topsrcdir)/regress/core/operators \
+ $(topsrcdir)/regress/core/orientation \
+ $(topsrcdir)/regress/core/out_geometry \
+ $(topsrcdir)/regress/core/out_geography \
+ $(topsrcdir)/regress/core/polygonize \
+ $(topsrcdir)/regress/core/polyhedralsurface \
+ $(topsrcdir)/regress/core/postgis_type_name \
+ $(topsrcdir)/regress/core/quantize_coordinates \
+ $(topsrcdir)/regress/core/regress \
+ $(topsrcdir)/regress/core/regress_bdpoly \
+ $(topsrcdir)/regress/core/regress_buffer_params \
+ $(topsrcdir)/regress/core/regress_gist_index_nd \
+ $(topsrcdir)/regress/core/regress_index \
+ $(topsrcdir)/regress/core/regress_index_nulls \
+ $(topsrcdir)/regress/core/regress_management \
+ $(topsrcdir)/regress/core/regress_selectivity \
+ $(topsrcdir)/regress/core/regress_lrs \
+ $(topsrcdir)/regress/core/regress_ogc \
+ $(topsrcdir)/regress/core/regress_ogc_cover \
+ $(topsrcdir)/regress/core/regress_ogc_prep \
+ $(topsrcdir)/regress/core/regress_proj \
+ $(topsrcdir)/regress/core/relate \
+ $(topsrcdir)/regress/core/remove_repeated_points \
+ $(topsrcdir)/regress/core/removepoint \
+ $(topsrcdir)/regress/core/reverse \
+ $(topsrcdir)/regress/core/setpoint \
+ $(topsrcdir)/regress/core/simplify \
+ $(topsrcdir)/regress/core/simplifyvw \
+ $(topsrcdir)/regress/core/size \
+ $(topsrcdir)/regress/core/snaptogrid \
+ $(topsrcdir)/regress/core/split \
+ $(topsrcdir)/regress/core/sql-mm-serialize \
+ $(topsrcdir)/regress/core/sql-mm-circularstring \
+ $(topsrcdir)/regress/core/sql-mm-compoundcurve \
+ $(topsrcdir)/regress/core/sql-mm-curvepoly \
+ $(topsrcdir)/regress/core/sql-mm-general \
+ $(topsrcdir)/regress/core/sql-mm-multicurve \
+ $(topsrcdir)/regress/core/sql-mm-multisurface \
+ $(topsrcdir)/regress/core/swapordinates \
+ $(topsrcdir)/regress/core/summary \
+ $(topsrcdir)/regress/core/temporal \
+ $(topsrcdir)/regress/core/temporal_knn \
+ $(topsrcdir)/regress/core/tickets \
+ $(topsrcdir)/regress/core/twkb \
+ $(topsrcdir)/regress/core/typmod \
+ $(topsrcdir)/regress/core/wkb \
+ $(topsrcdir)/regress/core/wkt \
+ $(topsrcdir)/regress/core/wmsservers \
+ $(topsrcdir)/regress/core/offsetcurve \
+ $(topsrcdir)/regress/core/relatematch \
+ $(topsrcdir)/regress/core/isvaliddetail \
+ $(topsrcdir)/regress/core/sharedpaths \
+ $(topsrcdir)/regress/core/snap \
+ $(topsrcdir)/regress/core/node \
+ $(topsrcdir)/regress/core/unaryunion \
+ $(topsrcdir)/regress/core/clean \
+ $(topsrcdir)/regress/core/relate_bnr \
+ $(topsrcdir)/regress/core/delaunaytriangles \
+ $(topsrcdir)/regress/core/clipbybox2d \
+ $(topsrcdir)/regress/core/subdivide \
+ $(topsrcdir)/regress/core/voronoi \
+ $(topsrcdir)/regress/core/regress_brin_index \
+ $(topsrcdir)/regress/core/regress_brin_index_3d \
+ $(topsrcdir)/regress/core/regress_brin_index_geography \
+ $(topsrcdir)/regress/core/minimum_clearance \
+ $(topsrcdir)/regress/core/oriented_envelope \
+ $(topsrcdir)/regress/core/point_coordinates \
+ $(topsrcdir)/regress/core/out_geojson
+
+# Slow slow tests
+TESTS_SLOW = \
+ $(topsrcdir)/regress/core/concave_hull_hard \
+ $(topsrcdir)/regress/core/knn_recheck
+
+ifeq ($(shell expr "$(POSTGIS_PGSQL_VERSION)" ">=" 120),1)
+ TESTS += \
+ $(topsrcdir)/regress/core/computed_columns
+endif
+
+ifeq ($(shell expr "$(POSTGIS_GEOS_VERSION)" ">=" 37),1)
+ # GEOS-3.7 adds:
+ # ST_FrechetDistance
+ TESTS += \
+ $(topsrcdir)/regress/core/frechet
+endif
+
+ifeq ($(shell expr "$(POSTGIS_GEOS_VERSION)" ">=" 38),1)
+ # GEOS-3.8 adds stable pointonsurface implementation
+ TESTS += \
+ $(topsrcdir)/regress/core/geos38
+endif
+
+ifeq ($(shell expr "$(POSTGIS_GEOS_VERSION)" ">=" 39),1)
+ # GEOS-3.0 adds stable maximuminscribedcircle implementation
+ TESTS += \
+ $(topsrcdir)/regress/core/geos39 \
+ $(topsrcdir)/regress/core/fixedoverlay
+endif
+
+ifeq ($(INTERRUPTTESTS),yes)
+ # Allow CI servers to configure --with-interrupt-tests
+ TESTS += \
+ $(topsrcdir)/regress/core/interrupt \
+ $(topsrcdir)/regress/core/interrupt_relate \
+ $(topsrcdir)/regress/core/interrupt_buffer
+endif
+
+ifeq ($(HAVE_JSON),yes)
+ # JSON-C adds:
+ # ST_GeomFromGeoJSON()
+ TESTS += \
+ $(topsrcdir)/regress/core/in_geojson
+endif
+
+ifeq ($(HAVE_SPGIST),yes)
+ TESTS += \
+ $(topsrcdir)/regress/core/regress_spgist_index_2d \
+ $(topsrcdir)/regress/core/regress_spgist_index_3d \
+ $(topsrcdir)/regress/core/regress_spgist_index_nd
+endif
+
+ifeq (yes,yes)
+ # protobuf-c adds:
+ # ST_AsMVT, ST_AsGeobuf
+ TESTS += \
+ $(topsrcdir)/regress/core/mvt \
+ $(topsrcdir)/regress/core/mvt_jsonb \
+ $(topsrcdir)/regress/core/geobuf
+endif
diff --git a/regress/core/tickets.sql b/regress/core/tickets.sql
index cedc471..ce2af9d 100644
--- a/regress/core/tickets.sql
+++ b/regress/core/tickets.sql
@@ -1302,4 +1302,12 @@ SELECT '#4727', _ST_DistanceTree('SRID=4326;POLYGON((-179.9 -85.05112877980659,
ST_MakePoint(-150,-40), 0.0, true);
SELECT '#4853', ST_ClusterDBSCAN(geom, eps := 0.000906495804256269, minpoints := 4) OVER() AS cid FROM (VALUES ('0101000020E6100000E4141DC9E5934B40D235936FB6193940'::geometry), ('0101000020E6100000C746205ED7934B40191C25AFCE193940'::geometry), ('0101000020E6100000C780ECF5EE934B40B6BE4868CB193940'::geometry), ('0101000020E6100000ABB2EF8AE0934B404451A04FE4193940'::geometry)) AS t(geom);
+
SELECT '#4844', ST_AsEWKT(ST_SnapToGrid(ST_Transform('SRID=3575;POINT(370182.35945313 -2213980.8213281)'::geometry,4326),0.01));
+
+SELECT '#4863', st_contains(geometry, st_scale(st_orientedenvelope(geometry),
+ 'SRID=3857; POINT(0.8 0.8)', st_centroid(geometry))) from (select
+ 'SRID=3857; POLYGON((-141972.789895508 6755731.24770785,-141935.49511986
+ 6755733.56891884,-141934.403428904 6755716.1146343,-141971.698204552
+ 6755713.77835553,-141972.789895508 6755731.24770785))'::geometry as
+ geometry) x;
diff --git a/regress/core/tickets_expected b/regress/core/tickets_expected
index 737e0c3..ec6c0e5 100644
--- a/regress/core/tickets_expected
+++ b/regress/core/tickets_expected
@@ -440,3 +440,4 @@ ERROR: LWGEOM_addpoint: Invalid offset
#4853|0
#4853|0
#4844|SRID=4326;POINT(19.49 69.79)
+#4863|t
-----------------------------------------------------------------------
Summary of changes:
NEWS | 2 +
liblwgeom/lwgeom.c | 18 ++---
regress/core/tests.mk | 181 ++++++++++++++++++++++++++++++++++++++++++
regress/core/tickets.sql | 8 ++
regress/core/tickets_expected | 1 +
5 files changed, 197 insertions(+), 13 deletions(-)
create mode 100644 regress/core/tests.mk
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list