Message posté par : Vincent Picavet
----------------------------------------
Je pense que ce serait plus simple et plus efficace de laisser ce type de traitement à
PostGIS, qui dispose d'une fonction de distance de Hausdorff.
Cela permettrait d'affiner le traitement exact à réaliser, en fonction de si vous
voulez comparer les polygones spatialement ou juste leurs formes géométriques. À priori
c'est spatial étant donné que vous avez deux millésimes de données.
Vous pourrez ainsi utiliser les indexes spatiaux sur les données afin de ne comparer que
les géométries qui le méritent, dont les bounding box s'intersectent par exemple.
Exemple de requête :
-----------------
Code :
select
a.id
, b.id
, st_HausdorffDistance(a.geom, b.geom) as dist
from
old_table as a
join
new_table as b
on
st_intersects(a.geom, b.geom);
-----------------
Dans le cas où on a un id commun on peut directement jointurer sur cet ID :
-----------------
Code :
select
a.id, st_HausdorffDistance(a.geom, b.geom) as dist
from
old_table as a
join
new_table as b
on
a.id = b.id
-----------------
Pour la doc c'est par là :
https://postgis.net/docs/ST_HausdorffDistance.html
Tout cela est exécutable directement dans le DB Manager de QGIS.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=324539#p324539
Pour y répondre : qgis_fr(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