[SCM] PostGIS branch master updated. 3.6.0rc2-338-gc154d2f6f

git at osgeo.org git at osgeo.org
Mon Feb 16 22:53:03 PST 2026


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, master has been updated
       via  c154d2f6ff21d92044dbe32237e53961950c62e8 (commit)
       via  c218747b14e642efcbe6e05722d30e2c834494f4 (commit)
       via  131398cb4b32da925283615ad7798f69ee44904c (commit)
       via  256d02fa782f7d55240fc49fdf0d1305dd5dabda (commit)
      from  0b5685b2dd93509b81e4f7674e7fc70f9ea7e3c8 (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 c154d2f6ff21d92044dbe32237e53961950c62e8
Author: Loïc Bartoletti <loic.bartoletti at oslandia.com>
Date:   Tue Feb 17 07:52:28 2026 +0100

    chore(news): fix CG_AlphaShape

diff --git a/NEWS b/NEWS
index fbde38635..702d22393 100644
--- a/NEWS
+++ b/NEWS
@@ -39,6 +39,7 @@ xxxx/xx/xx
  - #5593, Docs: render manual images with GraphicsMagick without temporary files,
           enabling parallel builds, keeping ImageMagick fallbacks working, and
           documenting the generator workflow for contributors (Darafei Praliaskouski)
+ - GH-848, CG_AlphaShape now returns a MultiPolygon (Jean Felder)
 
 PostGIS 3.6.0
 2025/09/01

commit c218747b14e642efcbe6e05722d30e2c834494f4
Author: Jean Felder <jean.felder at oslandia.com>
Date:   Thu Feb 12 11:31:38 2026 +0100

    sfcgal/tests: Add a unit test for alpha shapes with 2 components
    
    Those tests are only enabled witch SFCGAL 2.3 because the
    multi-components case was broken before this version.

diff --git a/sfcgal/regress/alphashape_components.sql b/sfcgal/regress/alphashape_components.sql
new file mode 100644
index 000000000..38e896ffd
--- /dev/null
+++ b/sfcgal/regress/alphashape_components.sql
@@ -0,0 +1,4 @@
+SELECT 'CG_Optimalalphashape_2components',
+       ST_AsText(CG_OptimalAlphaShape('MULTIPOINT((10.1 0.2),(8.1 0.1),(6.0 0.0),(4.2 0.3),(2.5 1.0),(1.2 2.3),(0.4 4.0),(0.1 6.1),(0.3 8.2),(1.1 10.1),(2.6 11.2),(4.1 11.9),(6.2 12.1),(8.3 11.8),(10.2 11.1),(9.1 9.9),(7.6 9.8),(6.1 9.9),(4.8 9.2),(3.8 8.0),(3.6 6.2),(3.7 4.1),(4.6 2.9),(6.0 2.3),(7.8 2.2),(9.2 2.4),(40.3 0.4),(40.1 3.1),(39.8 6.2),(40.4 9.0),(40.2 12.3),(40.5 15.2),(41.9 15.6),(43.1 15.3),(54.3 15.2),(55.8 15.0),(55.6 12.1),(55.9 9.2),(55.5 6.0),(55.7 3.3),(55.4 0.5),(52.6 0.1),(49.8 -0.2),(46.9 2.8),(44.2 0.2),(42.1 0.3),(43.0 3.8),(43.3 7.1),(43.1 10.4),(52.9 10.6),(52.7 7.3),(52.8 4.1))', allow_holes => false, nb_components => 2));
+SELECT 'CG_OptimalAlphaShape_hole_2components',
+       ST_AsText(CG_OptimalAlphaShape('MULTIPOINT((0 0),(0 1),(0 2),(0 3),(0 4),(0 5),(0 6),(0 7),(0 8),(0 9),(1 10),(2 10),(3 10),(4 10),(4.5 9.5),(5 9),(5.5 8.5),(6 8),(6 7),(6 6),(5.5 5.5),(5 5),(4 5),(3 5),(2 5),(1 5),(1 4),(2 4),(3 4),(4 4),(4.5 3.5),(5 3),(6 2),(6 1),(5.5 0.5),(5 0),(4 0),(3 0),(2 0),(1 0),(0.5 0),(0.5 1),(0.5 2),(0.5 3),(0.5 4),(0.5 5),(0.5 6),(0.5 7),(0.5 8),(0.5 9),(0.5 10),(1 9.5),(2 9.5),(3 9.5),(4 9.5),(4.5 9),(5 8.5),(5.5 8),(5.5 7),(5.5 6),(5.5 6.5),(5 5.5),(4 5.5),(3 5.5),(2 5.5),(1 5.5),(1.5 4.5),(2.5 4.5),(3.5 4.5),(4 4.5),(4.5 4),(5 3.5),(5.5 3),(5.5 2),(5.5 1),(5 0.5),(4 0.5),(3 0.5),(2 0.5),(1 0.5),(12 0),(12 1),(12 2),(12 3),(12 4),(12 5),(12 6),(12 7),(12 8),(12 9),(12 10),(13 10),(14 10),(15 10),(16 10),(16.5 9.5),(17 9),(17.5 8.5),(18 8),(18 7),(18 6),(17.5 5.5),(17 5),(16 5),(15 5),(14 5),(13 5),(12.5 0),(12.5 1),(12.5 2),(12.5 3),(12.5 4),(12.5 5),(12.5 6),(12.5 7),(12.5 8),(12.5 9),(12.5 10),(13 9.5),(14 9.5),(15 9.5),(16 9.5),(16.5 9),(17
  8.5),(17.5 8),(17.5 7),(17.5 6),(17.5 6.5),(17 5.5),(16 5.5),(15 5.5),(14 5.5),(13 5.5),(13 1),(13 2),(13 3),(13 4),(17.5 7.4),(18 7.3),(5.1 2.5),(5.8 2.5),(0.03 9.82),(0.23 10))', allow_holes => true, nb_components => 2));
diff --git a/sfcgal/regress/alphashape_components_expected b/sfcgal/regress/alphashape_components_expected
new file mode 100644
index 000000000..a30a4ad59
--- /dev/null
+++ b/sfcgal/regress/alphashape_components_expected
@@ -0,0 +1,2 @@
+CG_Optimalalphashape_2components|MULTIPOLYGON(((8.3 11.8,6.2 12.1,4.1 11.9,2.6 11.2,1.1 10.1,0.3 8.2,0.1 6.1,0.4 4,1.2 2.3,2.5 1,4.2 0.3,6 0,8.1 0.1,10.1 0.2,9.2 2.4,7.8 2.2,6 2.3,3.6 6.2,7.6 9.8,9.1 9.9,10.2 11.1,8.3 11.8)),((55.6 12.1,55.8 15,54.3 15.2,52.9 10.6,52.7 7.3,52.8 4.1,46.9 2.8,43.3 7.1,43.1 10.4,43.1 15.3,41.9 15.6,40.5 15.2,40.2 12.3,40.4 9,39.8 6.2,40.1 3.1,40.3 0.4,42.1 0.3,44.2 0.2,49.8 -0.2,52.6 0.1,55.4 0.5,55.7 3.3,55.5 6,55.9 9.2,55.6 12.1)))
+CG_OptimalAlphaShape_hole_2components|MULTIPOLYGON(((5.5 8.5,5 9,4.5 9.5,4 10,3 10,2 10,1 10,0.5 10,0.23 10,0.03 9.82,0 9,0 8,0 7,0 6,0 5,0 4,0 3,0 2,0 1,0 0,0.5 0,1 0,2 0,3 0,4 0,5 0,5.5 0.5,6 1,6 2,5.8 2.5,5.5 3,5 3.5,4.5 4,4 4.5,5 5,5.5 5.5,6 6,6 7,6 8,5.5 8.5),(0.5 2,0.5 3,1 4,2 4,3 4,4 4,4.5 3.5,5 3,5.1 2.5,5.5 2,5.5 1,5 0.5,4 0.5,3 0.5,2 0.5,1 0.5,0.5 1,0.5 2),(0.5 7,0.5 8,0.5 9,1 9.5,2 9.5,3 9.5,4 9.5,4.5 9,5 8.5,5.5 8,5.5 7,5.5 6.5,5.5 6,5 5.5,4 5.5,3 5.5,2 5.5,1 5.5,0.5 6,0.5 7)),((17.5 8.5,17 9,16.5 9.5,16 10,15 10,14 10,13 10,12.5 10,12 10,12 9,12 8,12 7,12 6,12 5,12 4,12 3,12 2,12 1,12 0,12.5 0,13 1,13 2,13 3,13 4,13 5,14 5,15 5,16 5,17 5,17.5 5.5,18 6,18 7,18 7.3,18 8,17.5 8.5),(12.5 7,12.5 8,12.5 9,13 9.5,14 9.5,15 9.5,16 9.5,16.5 9,17 8.5,17.5 8,17.5 7.4,17.5 7,17.5 6.5,17.5 6,17 5.5,16 5.5,15 5.5,14 5.5,13 5.5,12.5 6,12.5 7)))
diff --git a/sfcgal/regress/tests.mk.in b/sfcgal/regress/tests.mk.in
index 7089bada9..557edcd2f 100644
--- a/sfcgal/regress/tests.mk.in
+++ b/sfcgal/regress/tests.mk.in
@@ -43,3 +43,7 @@ ifeq ($(shell expr "$(POSTGIS_SFCGAL_VERSION)" ">=" 20100),1)
 		$(top_srcdir)/sfcgal/regress/simplify.sql \
 		$(top_srcdir)/sfcgal/regress/alphawrapping.sql
 endif
+ifeq ($(shell expr "$(POSTGIS_SFCGAL_VERSION)" ">=" 20300),1)
+	TESTS += \
+		$(top_srcdir)/sfcgal/regress/alphashape_components.sql
+endif

commit 131398cb4b32da925283615ad7798f69ee44904c
Author: Jean Felder <jean.felder at oslandia.com>
Date:   Tue Feb 3 10:52:37 2026 +0100

    sfcgal/doc: alphashape now returns a multipolygon instead of polygon
    
    This way, it is able to properly handle the multi components case. If
    the output has only one component a multipolygon with only one polygon
    is returned.

diff --git a/doc/reference_sfcgal.xml b/doc/reference_sfcgal.xml
index 3ac598b64..e3abfbac0 100644
--- a/doc/reference_sfcgal.xml
+++ b/doc/reference_sfcgal.xml
@@ -1607,10 +1607,7 @@ ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
         (75 84),(75 77),(81 29),(77 73),(41 42),(83 72),(23 36),(89 53),(27 57),(57 97),(27 77),(39 88),(60 81),
         (80 72),(54 32),(55 26),(62 22),(70 20),(76 27),(84 35),(87 42),(82 54),(83 64),(69 86),(60 90),(50 86),(43 80),(36 73),
         (36 68),(40 75),(24 67),(23 60),(26 44),(28 33),(40 32),(43 19),(65 16),(73 16),(38 46),(31 59),(34 86),(45 90),(64 97))'::geometry,80.2));</programlisting>
-    <screen>POLYGON((89 53,91 50,87 42,90 30,88 29,84 19,78 16,73 16,65 16,53 18,43 19,
-    37 23,30 22,28 33,23 36,26 44,27 54,23 60,24 67,27 77,
-    24 82,26 85,34 86,39 88,45 90,49 95,52 98,57 97,
-    64 97,72 95,76 88,75 84,83 72,85 71,88 58,89 53))</screen>
+    <screen>MULTIPOLYGON(((89 53,88 58,85 71,83 72,75 84,76 88,72 95,64 97,57 97,52 98,49 95,45 90,39 88,34 86,26 85,24 82,27 77,24 67,23 60,27 54,26 44,23 36,28 33,30 22,37 23,43 19,53 18,65 16,73 16,78 16,84 19,88 29,90 30,87 42,91 50,89 53)))</screen>
 </para>
 <para>
     <informalfigure>
@@ -1626,10 +1623,7 @@ ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
     (75 84),(75 77),(81 29),(77 73),(41 42),(83 72),(23 36),(89 53),(27 57),(57 97),(27 77),(39 88),(60 81),
     (80 72),(54 32),(55 26),(62 22),(70 20),(76 27),(84 35),(87 42),(82 54),(83 64),(69 86),(60 90),(50 86),(43 80),(36 73),
     (36 68),(40 75),(24 67),(23 60),(26 44),(28 33),(40 32),(43 19),(65 16),(73 16),(38 46),(31 59),(34 86),(45 90),(64 97))'::geometry, 100.1,true))</programlisting>
-<screen>POLYGON((89 53,91 50,87 42,90 30,84 19,78 16,73 16,65 16,53 18,43 19,30 22,28 33,23 36,
-26 44,27 54,23 60,24 67,27 77,24 82,26 85,34 86,39 88,45 90,49 95,52 98,57 97,64 97,72 95,
-76 88,75 84,83 72,85 71,88 58,89 53),(36 61,36 68,40 75,43 80,60 81,68 73,77 67,
-81 60,82 54,81 47,78 43,76 27,62 22,54 32,44 42,38 46,36 61))</screen>
+<screen>MULTIPOLYGON(((89 53,88 58,85 71,83 72,75 84,76 88,72 95,64 97,57 97,52 98,49 95,45 90,39 88,34 86,26 85,24 82,27 77,24 67,23 60,27 54,26 44,23 36,28 33,30 22,43 19,53 18,65 16,73 16,78 16,84 19,90 30,87 42,91 50,89 53),(36 68,40 75,43 80,60 81,68 73,77 67,81 60,82 54,81 47,78 43,76 27,62 22,54 32,44 42,38 46,36 61,36 68)))</screen>
             </para>
 
             <para>
@@ -1643,10 +1637,7 @@ ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
                 </informalfigure>
                 <programlisting>SELECT ST_AsText(CG_AlphaShape(
                 'MULTIPOINT ((132 64), (114 64), (99 64), (81 64), (63 64), (57 49), (52 36), (46 20), (37 20), (26 20), (32 36), (39 55), (43 69), (50 84), (57 100), (63 118), (68 133), (74 149), (81 164), (88 180), (101 180), (112 180), (119 164), (126 149), (132 131), (139 113), (143 100), (150 84), (157 69), (163 51), (168 36), (174 20), (163 20), (150 20), (143 36), (139 49), (132 64), (99 151), (92 138), (88 124), (81 109), (74 93), (70 82), (83 82), (99 82), (112 82), (126 82), (121 96), (114 109), (110 122), (103 138), (99 151), (34 27), (43 31), (48 44), (46 58), (52 73), (63 73), (61 84), (72 71), (90 69), (101 76), (123 71), (141 62), (166 27), (150 33), (159 36), (146 44), (154 53), (152 62), (146 73), (134 76), (143 82), (141 91), (130 98), (126 104), (132 113), (128 127), (117 122), (112 133), (119 144), (108 147), (119 153), (110 171), (103 164), (92 171), (86 160), (88 142), (79 140), (72 124), (83 131), (79 118), (68 113), (63 102), (68 93), (35 45))'::geometry,102.
 2, true));</programlisting>
-            <screen>POLYGON((26 20,32 36,35 45,39 55,43 69,50 84,57 100,63 118,68 133,74 149,81 164,88 180,
-            101 180,112 180,119 164,126 149,132 131,139 113,143 100,150 84,157 69,163 51,168 36,
-            174 20,163 20,150 20,143 36,139 49,132 64,114 64,99 64,90 69,81 64,63 64,57 49,52 36,46 20,37 20,26 20),
-            (74 93,81 109,88 124,92 138,103 138,110 122,114 109,121 96,112 82,99 82,83 82,74 93))</screen>
+            <screen>MULTIPOLYGON(((168 36,163 51,157 69,150 84,143 100,139 113,132 131,126 149,119 164,112 180,101 180,88 180,81 164,74 149,68 133,63 118,57 100,50 84,43 69,39 55,35 45,32 36,26 20,37 20,46 20,52 36,57 49,63 64,81 64,90 69,99 64,114 64,132 64,139 49,143 36,150 20,163 20,174 20,168 36),(81 109,88 124,92 138,103 138,110 122,114 109,121 96,112 82,99 82,83 82,74 93,81 109)))</screen>
     </para>
 </refsection>
 <refsection>
@@ -2447,8 +2438,7 @@ It always gives a 2D result even when used on a 3D geometry.</para></note>
             (75 84),(75 77),(81 29),(77 73),(41 42),(83 72),(23 36),(89 53),(27 57),(57 97),(27 77),(39 88),(60 81),
             (80 72),(54 32),(55 26),(62 22),(70 20),(76 27),(84 35),(87 42),(82 54),(83 64),(69 86),(60 90),(50 86),(43 80),(36 73),
             (36 68),(40 75),(24 67),(23 60),(26 44),(28 33),(40 32),(43 19),(65 16),(73 16),(38 46),(31 59),(34 86),(45 90),(64 97))'::geometry));</programlisting>
-        <screen>POLYGON((89 53,91 50,87 42,90 30,88 29,84 19,78 16,73 16,65 16,53 18,43 19,37 23,30 22,28 33,23 36,
-        26 44,27 54,23 60,24 67,27 77,24 82,26 85,34 86,39 88,45 90,49 95,52 98,57 97,64 97,72 95,76 88,75 84,75 77,83 72,85 71,83 64,88 58,89 53))</screen>
+        <screen>MULTIPOLYGON(((89 53,88 58,83 64,85 71,83 72,75 77,75 84,76 88,72 95,64 97,57 97,52 98,49 95,45 90,39 88,34 86,26 85,24 82,27 77,24 67,23 60,27 54,26 44,23 36,28 33,30 22,37 23,43 19,53 18,65 16,73 16,78 16,84 19,88 29,90 30,87 42,91 50,89 53)))</screen>
 </para>
 
 <para>
@@ -2465,7 +2455,7 @@ It always gives a 2D result even when used on a 3D geometry.</para></note>
     (75 84),(75 77),(81 29),(77 73),(41 42),(83 72),(23 36),(89 53),(27 57),(57 97),(27 77),(39 88),(60 81),
     (80 72),(54 32),(55 26),(62 22),(70 20),(76 27),(84 35),(87 42),(82 54),(83 64),(69 86),(60 90),(50 86),(43 80),(36 73),
     (36 68),(40 75),(24 67),(23 60),(26 44),(28 33),(40 32),(43 19),(65 16),(73 16),(38 46),(31 59),(34 86),(45 90),(64 97))'::geometry, allow_holes => true));</programlisting>
-<screen>POLYGON((89 53,91 50,87 42,90 30,88 29,84 19,78 16,73 16,65 16,53 18,43 19,37 23,30 22,28 33,23 36,26 44,27 54,23 60,24 67,27 77,24 82,26 85,34 86,39 88,45 90,49 95,52 98,57 97,64 97,72 95,76 88,75 84,75 77,83 72,85 71,83 64,88 58,89 53),(36 61,36 68,40 75,43 80,50 86,60 81,68 73,77 67,81 60,82 54,81 47,78 43,81 29,76 27,70 20,62 22,55 26,54 32,48 34,44 42,38 46,36 61))</screen>
+<screen>MULTIPOLYGON(((89 53,88 58,83 64,85 71,83 72,75 77,75 84,76 88,72 95,64 97,57 97,52 98,49 95,45 90,39 88,34 86,26 85,24 82,27 77,24 67,23 60,27 54,26 44,23 36,28 33,30 22,37 23,43 19,53 18,65 16,73 16,78 16,84 19,88 29,90 30,87 42,91 50,89 53),(36 68,40 75,43 80,50 86,60 81,68 73,77 67,81 60,82 54,81 47,78 43,81 29,76 27,70 20,62 22,55 26,54 32,48 34,44 42,38 46,36 61,36 68)))</screen>
 </para>
 
             </refsection>

commit 256d02fa782f7d55240fc49fdf0d1305dd5dabda
Author: Loïc Bartoletti <loic.bartoletti at oslandia.com>
Date:   Tue Feb 17 07:51:36 2026 +0100

    chore(news): fix my first name

diff --git a/NEWS b/NEWS
index 684606d3a..fbde38635 100644
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@ xxxx/xx/xx
  - #5109, Document the meaning of topology.next_left_edge and topology.next_right_edge links (Darafei Praliaskouski)
  - #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski)
  - #2614, Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey)
- - GH-839, ST_Multi support for TIN and surfaces (Luca Bartoletti)
+ - GH-839, ST_Multi support for TIN and surfaces (Loïc Bartoletti)
 
 * Bug Fixes *
 

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                          |  3 ++-
 doc/reference_sfcgal.xml                      | 20 +++++---------------
 sfcgal/regress/alphashape_components.sql      |  4 ++++
 sfcgal/regress/alphashape_components_expected |  2 ++
 sfcgal/regress/tests.mk.in                    |  4 ++++
 5 files changed, 17 insertions(+), 16 deletions(-)
 create mode 100644 sfcgal/regress/alphashape_components.sql
 create mode 100644 sfcgal/regress/alphashape_components_expected


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list