#1 Tue 27 May 2014 10:06
- douante
- Juste Inscrit !
- Date d'inscription: 20 Apr 2010
- Messages: 3
QGIS 2.2 : Jointure spatiale
Bonjour,
(Désolé si la question a déjà été posée, je ne l'ai pas trouvé)
Je cherche à exécuter une jointure spatiale entre 2 tables.
J'ai découpé des polygones par rapport à des limites communales, je cherche désormais à attribuer à chaque polygone le code INSEE correspondant. Seul hic, l'outil "Vecteur -> outil de gestion de données -> Joindre les attributs par localisation" me renvoie étrangement des données erronées (parfois le code INSEE de la commune voisine, je suspecte Qgis de s'arrêter de chercher quand il "touche" un polygone). Le peu d'option de la boite de dialogue ne me permet pas de corriger le problème.
Existe t'il une autre solution via une extension ou autre ?
Merci d'avance pour votre aide
Hors ligne
#2 Tue 27 May 2014 10:43
Re: QGIS 2.2 : Jointure spatiale
Bonjour,
Passez plutôt par l'outil Requête spatiale qui vous permettra de choisir votre opérateur (interescte, touche..etc).
Hors ligne
#3 Tue 27 May 2014 11:08
- douante
- Juste Inscrit !
- Date d'inscription: 20 Apr 2010
- Messages: 3
Re: QGIS 2.2 : Jointure spatiale
Merci pour votre réponse, mais sauf erreur de ma part, cette opération ne me permettra pas de mettre à jour une colonne Code INSEE issue de ma couche commune ?
Hors ligne
#4 Tue 27 May 2014 11:20
Re: QGIS 2.2 : Jointure spatiale
Vous avez raison, j'ai répondu beaucoup trop vite en réagissant uniquement sur votre problème de limites.
Hors ligne
#5 Tue 27 May 2014 11:50
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: QGIS 2.2 : Jointure spatiale
Bonjour
Ce n'est pas terrible comme solution, mais vous pouvez passer par l'extension MMQGIS => combine => spatial join.
C'est pas terrible car cela vous créé une couche supplémentaire mais avec le ou les champs sélection lors de votre jointure spatiale.
Cordialement.
Dernière modification par Benoit91 (Tue 27 May 2014 13:52)
Hors ligne
#6 Tue 27 May 2014 12:07
- Leyan
- Participant assidu
- Date d'inscription: 14 Oct 2013
- Messages: 160
Re: QGIS 2.2 : Jointure spatiale
En effet, joindre les attributs par localisation va s'arrêter au premier élément qui touche, il n'y a pas d'option pour limiter aux éléments qui contiennent le polygone entier.
Quel type de données utilises-tu ? Cela semble tout indiqué pour une requête PostGIS du genre :
Code:
UPDATE polygon2 p2 SET val = p1.val1 FROM polygon1 p1 WHERE ST_contains(p1.geom,p2.geom);
Dernière modification par Leyan (Tue 27 May 2014 12:08)
Hors ligne
#7 Tue 27 May 2014 14:52
- douante
- Juste Inscrit !
- Date d'inscription: 20 Apr 2010
- Messages: 3
Re: QGIS 2.2 : Jointure spatiale
Merci pour vos propositions,
@Leyan : j'utilise des zonages saisis à grande échelle, je cherche à faire des calculs de surface par commune. J'avais préalablement découpé mes polygones par rapport à mes limites communales puisque les polygones peuvent être à cheval sur 2 voire plus de communes.
Pour PostGis, il va falloir que je m'y mette ! j'ai pas encoure fourré le nez dedans
Bonjour
C'est terrible comme solution, mais vous pouvez passer par l'extension MMQGIS => combine => spatial join.
C'est pas terrible car cela vous créer une couche supplémentaire mais avec le ou les champs sélection lors de votre jointure spatiale.
Cordialement.
J'ai testé, ça marchait presque ! Le fait que les limites de mes polygones et communales se touchaient parfois faisait déconner la requête (attribution du mauvais code INSEE). J'ai fait une zone tampon "érosion" (tampon = -1m) qui m'a permis de faire la requête suivante : Polygone within Commune.
Il m'a suffit de faire une joiture attributaire derrière pour recoller les codes INSEE sur ma bonne table de polygones.
OUF !
Y a sûrement plus simple à faire mais ça marche c'est déjà ça
Merci pour les tuyaus
Hors ligne