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

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Thu 10 December 2020 15:28

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

QGIS: Joindre par localisation

Bonjour,

J'ai une couche communes de mon département, j'ai la couche cours d'eau. Plusieurs cours d'eau intersectes une même communes.
Comment faire la jointure. Forcément joindre par localisation ne fonctionne pas.

Merci d'avance

Hors ligne

 

#2 Thu 10 December 2020 15:53

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1671

Re: QGIS: Joindre par localisation

Bonjour,

Peut-être d'abord découper les cours d'eau par la couche communes, et après faire la jointure spatiale par localisation. Attention moi aussi j'ai mis un post à ce sujet, ma jointure spatiale par localisation ne fonctionne pas non plus

Hors ligne

 

#3 Fri 11 December 2020 10:59

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

oui mais non ça ne résout pas le problème. Je suis sûr c'est possible où en SQL, c'est une jointure de type 1:N

Hors ligne

 

#4 Mon 14 December 2020 10:09

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Mais je ne sais pas du tout comment faire

Hors ligne

 

#5 Mon 14 December 2020 10:54

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3948

Re: QGIS: Joindre par localisation

Bonjour,

J'ai une couche communes de mon département, j'ai la couche cours d'eau. Plusieurs cours d'eau intersectes une même communes.
Comment faire la jointure.


A quelles fins? Que souhaitez vous obtenir? La réponse de conejo est presque celle que j'aurais proposée (supposant que vous souhaitez avoir des statistiques sur les cours d'eau par commune) - même outil mais avec résumé. Mais si ça ne résout pas le problème, il faudra peut-être un peu plus expliquer le problème.

Hors ligne

 

#6 Mon 14 December 2020 11:09

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Je monte une grosse basse de donnée qui regroupe beaucoup de choses etc.. cela en prenant comme base une couche communes. Je fait donc plusieurs jointures avec d'autres données géographiques pour ajouter des données à la couche communes initiales.. les cours d'eau en font partis.

Je ne peux pas recopier 1 par 1 les 670 cours d'eau et rentrer pour mes 570 communes manuellement quel cours d'eau correspond. Il faut donc faire une jointure spatiales. Or joindre les attributs par localisation ne fonctionne pas c'est logique. Le problème est que plusieurs cours d'eau intersecte une même communes. C'est pour cela que je dis qu'il s'agit surement d'une jointure 1:N.  J'ai essayé joindre par localisation (résumé) mais il joint uniquement 1 seul cours d'eau alors que plusieurs intersecte une même commune. Je ne vois pas comment faire

Hors ligne

 

#7 Mon 14 December 2020 12:46

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Ou tout simplement j'ai réussis à joindre les communes avec le code INSEE, pouvoir garder 1 seul entité communes avec un champs qui concatène les noms des cours d'eau. Exemple "nom1,nom2)

Hors ligne

 

#8 Tue 15 December 2020 10:30

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1671

Re: QGIS: Joindre par localisation

vous avez résolu le problème?

Hors ligne

 

#9 Tue 15 December 2020 11:40

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

non

Hors ligne

 

#10 Tue 15 December 2020 12:00

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Je suis absolument coicné alors que cela doit être d'une banalité absolu

Hors ligne

 

#11 Tue 15 December 2020 13:57

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Voir les pièces jointes de l'état actuelle et le résultat voulus

Dernière modification par kili888 (Tue 15 December 2020 13:58)


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

Hors ligne

 

#12 Tue 15 December 2020 16:04

lchevrier
Participant occasionnel
Date d'inscription: 16 Feb 2018
Messages: 41

Re: QGIS: Joindre par localisation

Salut,

Tu sais utiliser spatialite sur QGIS ?
Je ne suis pas très bon en spatialite, certains sauront certainement faire bien mieux en moins de manip, mais je crois avoir une solution détournée.

1- Joindre les attributs 'cours d'eau' par localisation 'commune' avec comme type de jointure "Créer une entité distincte pour chaque entité correspondante (un à plusieurs)"

Tu te retrouves alors avec une couche qu'on appellera jointure contenant la table attributaire suivante :

cp         nom
71001   Bief du Moulin Richy
71002   Bief du Moulin de Serville Ruisseau
71002 la Noue
71002   la Tenarre

2- créer une nouvelle base de donnée spatialite temporaire que l'on nommera "bdd"

3- exporte ta couche "jointure" dans ta base de donnée spatialite (enregistrer sous spatialite/...)

4- Clique sur l'onglet "Base de données" / DB manager / Spatialite / bdd.sqlite / jointure

5- Clique sur "fenêtre sql" (une icone avec une clé à gauche de "import de couche...")

6- tape cette requête :

select cp, group_concat(nom) intersection
from jointure
group by cp

Dans le détail cela signifie

Selon le champ "cp" (code postal) regroupe les lignes "nom" (rivière) dans un nouveau champ "intersection"
de la table "jointure"
regroupe selon "cp"

7- Clique sur "Exécuter"

8- Tu obtiens l'aperçu souhaité, mais tu ne l'a pas dans une couche carto simplement en tableau.

9- coche la case "Charger en tant que nouvelle couche"

10- Clique sur "Charger"

11- le tableau est chargé sur qgis sous le nom "CoucheRequête"

12- retourne sur ta couche initiale "commune", clique droit "Propriétés..." , onglet "jointures", joindre la couche "CoucheRequête"

champ de jointure "cp"
champ dans la couche cible "cp"
Joined fields "intersection"

Et voilà le travail, plus qu'à "enregistrer sous" ta couche commune en geopackage ou shapefile,... pour ne pas perdre la jointure à la fermeture de ton projet.


C'est vraiment très brouillon et bidouillé tout ça, j'en ai conscience et j'espère que quelqu'un avec de l'expertise t'apportera une solution plus convenable, en attendant ça peut te dépanner

Dernière modification par lchevrier (Tue 15 December 2020 16:06)

Hors ligne

 

#13 Tue 15 December 2020 16:55

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3948

Re: QGIS: Joindre par localisation

Bonjour,
Kiili888, sur la base de vos images, essayez donc l'outil du modeleur agrégation
Je pensais que vous aviez deux couches distinctes

Hors ligne

 

#14 Wed 16 December 2020 08:45

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

A la base oui c'était bien 2 couches mais j'ai réussis entre temps à joindre le code INSEE, je vais essayer vos méthodes.

Hors ligne

 

#15 Wed 16 December 2020 11:56

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

C'est bien l'algorithme agrégation qu'il me faut j'ai plus où moins le résultat. Je dois juste mal le paramétrer.

Hors ligne

 

#16 Wed 16 December 2020 14:59

kili888
Participant actif
Date d'inscription: 4 May 2020
Messages: 93

Re: QGIS: Joindre par localisation

Merci beaucoup j'ai mon résultat avec l'algo agrégation. Je me débrouille un peut autrement il me joint tout les noms + les codes INSEE, je créer donc un nouveau champs avec la fonction left qui récupère les 5 premier caractères à gauche pour avoir un seul code par lignes.
J'ai donc bien une ligne 1 codes INSEE avec en face tous les cours d'eau qui intersecte la commune dans un seul et même attribut.
Il me reste ensuite simplement à joindre cette couche à ma couche de travail de base de données grâce aux champs INSEE.

encore une fois merci beaucoup.

Hors ligne

 

Pied de page des forums

Powered by FluxBB