banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 17 September 2019 17:07

zack
Participant occasionnel
Date d'inscription: 16 Jul 2014
Messages: 33

Regroupement de polygones par voisinage

Salut,

Je poste ça ici parce que je pense qu'en postgis ça sera plus simple, mais peut-être que la solution existe directement sur QGIS ou autre...
J'ai des polygones, qui sont des parcelles, auxquels je veut agréger de plus petits polygones voisins (qui sont en réalités des "trous" entre les parcelles). J'ai construit ces petits polygones avec la fonction ST_StraightSkeleton.

J'ai essayé de récupérer les identifiants des polygones qui bordent le premier polygone et de calculer la longueur du segment commun, avec la fonction suivante, mais ça ne m'a pas sélectionné l'ensemble des polygones adjacents.

Code:

SELECT a.id AS gid_a, b.gid AS gid_b,
  ST_Length(ST_CollectionExtract(ST_Intersection(a.geom, b.geom), 2))
FROM polygones1 a, polygones2 b
WHERE a.id < b.gid AND ST_Touches(a.geom, b.geom)
order by gid_a;

En essayant simplement avec une sélection par localisation dans QGIS, pareil, je n'obtient pas l'ensemble des polygones (cf capture). Par contre, avec ArcGIS Pro, et l'option "share a line segment with" je dois admettre que ça donne un résultat parfait, sans les polygones en pointe (croix rouges)... mais je ne peux pas l'utiliser dans mon modèle qui est en pyqgis avec quelques fonctions en postgis.

Est-ce que quelqu'un a une solution? Qu'est-ce qui explique ces différences d'appréciation entre logiciels, alors qu'à l'origine c'est un même polygone découpé, et que la fonction "touche" de QGIS devrait marcher...


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

Pied de page des forums

Powered by FluxBB