<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
You might try adding a step to get the MultiPolygons from your Geometrycollection, see</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<a href="https://postgis.net/docs/ST_CollectionExtract.html" id="OWA058ee274-5e3f-dc0f-a059-50521fa580d1" class="OWAAutoLink">https://postgis.net/docs/ST_CollectionExtract.html</a></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Use type = 3 for polygons</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
UPDATE city_boundaries SET wayn3 = ST_Multi(ST_CollectionExtract(ST_Buffer(wayn2, -50, 'join=miter'),3));</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature" class="elementToProof" style="color: inherit;">
<div style="margin-right: 0px; margin-left: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
Brent Wood<br>
<br>
Principal Technician, Fisheries<br>
NIWA<br>
DDI:  +64 (4) 3860529</div>
</div>
<div id="appendonsend" style="color: inherit;"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div dir="ltr" id="divRplyFwdMsg" style="color: inherit;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><b>From:</b> Luca Bertoncello <lucabert@lucabert.de><br>
<b>Sent:</b> Monday, December 23, 2024 03:40<br>
<b>To:</b> postgis-users@lists.osgeo.org <postgis-users@lists.osgeo.org><br>
<b>Subject:</b> Help with a query</span>
<div> </div>
</div>
<div style="font-size: 11pt;">Hi list!<br>
<br>
I have a query that worked some years with my "old" Debian 10 and<br>
Postgres 11.<br>
Now with Debian 12 and Postgres 15 throws an error...<br>
<br>
So, my problem: I need to create a table with the _physical_ boundaries<br>
of the cities.<br>
I already asked you some years ago and now I have my query.<br>
<br>
So I create a Table `city_boundaries`. Now I must "compact" it, in order<br>
to have only the outer polygon.<br>
The table has a column `way` defined as geometry(MultiPolygon,3857).<br>
<br>
As suggested 2021, I aggregate the building using 4 temporary columns,<br>
wayn1, wayn2, wayn3 and wayn4. They are defined too as<br>
geometry(MultiPolygon,3857).<br>
<br>
Then I run my queries:<br>
<br>
UPDATE city_boundaries SET wayn1 =<br>
ST_Multi(ST_SimplifyPreserveTopology(way, 100));<br>
UPDATE city_boundaries SET wayn2 = ST_Multi(ST_Buffer(wayn1, 50,<br>
'join=miter'));<br>
UPDATE city_boundaries SET wayn3 = ST_Multi(ST_Buffer(wayn2, -50,<br>
'join=miter'));<br>
UPDATE city_boundaries SET wayn4 = ST_Makevalid(wayn3);<br>
<br>
The last query throws the error:<br>
<br>
FEHLER:  Geometry type (GeometryCollection) does not match column type<br>
(MultiPolygon)<br>
<br>
I suppose, in the last versions of PostGIS the Function ST_Makevalid<br>
will return something other than in the previous one.<br>
Can someone suggest me how to "convert" it as needed?<br>
<br>
Thanks a lot<br>
Luca Bertoncello<br>
(lucabert@lucabert.de)</div>
<table style="width: 600px; font-size: 8pt; font-family: Arial" cellspacing="20">
<tbody>
<tr>
<td><a href="https://www.niwa.co.nz"><img src="https://www.niwa.co.nz/static/niwa-2018-horizontal-180.png">
</a></td>
<td>
<table style="width: 500px">
<tbody>
<span>Brent Wood <br>
<font color="#1793d2">Principal Technician - GIS and Spatial Data Management</font><br>
<font color="#1793d2">Programme Leader - Environmental Information Delivery</font><br>
+64-4-386-0529<br>
<br>
National Institute of Water & Atmospheric Research Ltd (NIWA)<br>
301 Evans Bay Parade Hataitai Wellington New Zealand<br>
<b>Connect with NIWA:</b> <a href="https://www.niwa.co.nz">niwa.co.nz</a> <a href="https://www.facebook.com/nzniwa">
Facebook</a> <a href="https://www.linkedin.com/company/niwa">LinkedIn</a> <a href="https://twitter.com/niwa_nz">
Twitter</a> <a href="https://www.instagram.com/niwa_science">Instagram</a> <a href="https://www.youtube.com/channel/UCJ-j3MLMg1H59Ak2UaNLL3A">
YouTube</a> </span>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<font face="Arial" size="1">To ensure compliance with legal requirements and to maintain cyber security standards, NIWA's IT systems are subject to ongoing monitoring, activity logging and auditing. This monitoring and auditing service may be provided by third
 parties. Such third parties can access information transmitted to, processed by and stored on NIWA's IT systems.
<br>
Note: This email is intended solely for the use of the addressee and may contain information that is confidential or subject to legal professional privilege. If you receive this email in error please immediately notify the sender and delete the email.
</font>
</body>
</html>