From 2383c7b0adc1abc6475ffebc01a63bcbf1e9165e Mon Sep 17 00:00:00 2001 From: Laupie2 Date: Thu, 5 Feb 2026 11:04:57 +0100 Subject: [PATCH] code_building_simplification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ici à l'aide de ce code, il est possible d'observer la fusion des bâtiments qui autrefois étaient séparés par de fines lignes blanches. Il sont maintenant fusionnés pour ne former qu'un cluster . Deux choses à souligner: 1. La partie du code mettant une enveloppe en place peut totalement être supprimée pour travailler sur une échelle plus grande. 2. De plus, la valeur eps 10 peut aussi être modifiée en fonction de la distance recherchée entre les bâtiments, ici à l'échelle de la ville d'Habay cela fonctionnait parfaitement. --- ...building simplification code commenter.sql | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 ticket_3_building simplification/building simplification code commenter.sql diff --git a/ticket_3_building simplification/building simplification code commenter.sql b/ticket_3_building simplification/building simplification code commenter.sql new file mode 100644 index 0000000..4a05c76 --- /dev/null +++ b/ticket_3_building simplification/building simplification code commenter.sql @@ -0,0 +1,31 @@ +WITH clustered AS ( + SELECT + way, -- Sélection des géométries de bâtiments + ST_ClusterDBSCAN(way, eps := 10, minpoints := 1) OVER () AS cid -- Attribution d'un identifiant de cluster selon la proximité spatiale, eps = distance max entre deux batiments pour les considérer comme un même cluster + -- et minpoint = un cluster peut etre formé même avec 1 seul élément. + FROM planet_osm_polygon + WHERE building IS NOT NULL -- On conserve uniquement des polygones de bâtiments + AND way && ST_Transform( + ST_MakeEnvelope(5.63, 49.71, 5.68, 49.75, 4326), -- Limitation du traitement à la zone d'étude (ici à la commune de Habay) + 3857 + ) +) + +-- Fusion et généralisation des bâtiments par cluster +SELECT + cid, + ST_Simplify( -- simplification des batiments finaux + ST_Union( -- fusion des batiments appartenant à un même cluster + ST_MakeValid(way) -- permet d'avoir des géometries valides + ), + 1.5 -- en fonction de l'échelle, cette valeur peut changer, à l'échelle d'une ville on a une simplification qui reste précise + ) AS geom + +FROM clustered + +-- Suppression des entités sans cluster +WHERE cid IS NOT NULL + +-- Création d'un polygone final par cluster +GROUP BY cid; +