Message posté par : preliator
----------------------------------------
Bonjour,
Je dispose d'une grande table spatiale qui contient de nombreux polygones (plus de 18
millions) avec un code insee. Sur un territoire en particulier, je souhaite obtenir la
distance la plus courte qui sépare chaque polygone à un autre.
Pour cela, je me sers de la clause "cross join lateral" qui semble avoir de
meilleures performances que "st_distance".
-----------------
Code :
select c.id, t.dist
from ma_table c cross join lateral (
select z.id, st_centroid(c.geom) <-> st_centroid(z.geom) as dist
from ma_table z
where c.id_parcelle > z.id_parcelle and c.id > z.id
order by st_centroid(c.geom) <-> st_centroid(z.geom)
limit 1
) t
where c.insee_com like '01%'
-----------------
Cette requete ne se termine jamais (même après 8h). En filtrant sur le département de
l'Ain (01), je tombe le nombre d'entités à environ 2 millions pourtant.
Aurais-je oublié quelque chose ?
Merci.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=347502#p347502
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