Message posté par : preliator
----------------------------------------
Bonjour à tous,
Je dispose d'une couche de points assez conséquente (un peu plus de 1 million), et je
voudrais sélectionner la plus courte distance séparant chaque point de cette même couche à
un autre (plus proche voisin). Après quelques recherches sur internet, je me suis tourné
vers la clause Cross Join Lateral.
Cependant, la requête ne se termine jamais (plus de 5h sans finalisation). J'ai
comparé avec la Matrice des distances de QGis, et là le temps de calcul semble être bien
plus rapide (environs 10% toute les 5 minutes). Je me dit que la cause se trouve peut être
dans la requête mal formulée.
Voici la requête que j'ai utilisé :
-----------------
Code :
with couche_points as (select * from public.centroides_batis_all)
select p.id, t.id_2, t.dist
from couche_points p cross join lateral(
select r.id as id_2, p.geom <-> r.geom as dist
from couche_points r
where p.id <> r.id
order by p.geom <-> r.geom
limit 1) as t
-----------------
Pourtant, tout m'a l'air bon. Existe t-il une différence de performance entre
PostGis et QGis ?
Merci à vous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=331708#p331708
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