Message posté par : T. Rossini
----------------------------------------
Salut,
tout d'abord,
le message d'erreur semble indiquer que la colonne géométrique
de votre table lignes_zone_test est de type multi linestring.
A ce moment là, il faudrait les extraire avec st_dump.
Ensuite, le résultat que vous obtenez vient du fait que
votre requête exécute pour st_split pour chaque combinaison
des géométries de vos deux tables.
Cette fonction, utilisée avec une géométrie et une ligne de découpe
qui sont géométriquement disjointes, aura pour résultat la géométrie originale.
Pour supprimer ces résultats inutiles, il faudrait rajouter une condition de jointure
entre vos deux tables pour ne retenir que les éléments qui s'intersectent :
-----------------
Code :
SELECT ST_CollectionExtract(ST_Split(rect.geom, line.the_geom),3)
FROM public.polygones_zone_test as rect
JOIN public.lignes_zone_test as line
ON st_intersects(rect.geom, line.the_geom)
-----------------
Si vous ne l'avez pas déjà fait, vous devriez ajouter un index géométrique
sur l'une de vos deux tables, (typiquement celles qui contient le plus
grand nombre de ligne).
Mais je ne suis pas sur que cela soit le résultat que vous attendiez,
supposez un polygone traversé par plusieurs lignes,
chaque découpage se déroulera indépendamment avec toujours le polygone orignal en entier.
Pour découper avec une multi ligne, il vous faudrait passer à postgis 2.5
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=321041#p321041
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net