Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Wed 28 October 2015 19:11

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 996

QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Bonjour tout le monde !

Je viens vers vous pour essayer de trouver une solution à mon problème.

Je cherche à afficher uniquement les polygones (département et région) qui intersectent un polygone qui se trouve dans une autre couche. Est-ce que d'après vous c'est possible ? J'imagine qu'il faut passer par un style de type ensemble de règle. Mais je ne vois pas comment faire pour automatiser cette requête (intersection entre deux couches dans une expression). Et ce, sans passer par l'atlas du composeur (et donc les fonctions de l'atlas dans les expressions) !

Merci pour vos idées !!!

A plus tard,  Gladal

Hors ligne

 

#2 Wed 28 October 2015 20:17

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

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Salut,
S'agit-il d'un seul et unique polygone (bien précis) dans l'autre couche ou veux-tu tous tes régions et départements qui toucheraient au moins une entité de l'autre couche?
Dans le premier cas, tu peux faire une symbologie catégorisée sur ta couche "territoire" avec la formule du genre

Code:

 intersects( $geometry, geometry(getFeature('sic', 'gid', 468)))

qui vérifie l'existence d'une intersection entre mon entité (de la couche territoire) et l'objet de la couche "sic" ayant la valeur 468 pour l'attribut "gid". getFeature renvoie la première entité qui remplit la condition donc s'assurer que la condition ne renverra que la bonne entité et elle seule.
En termes de classification, tu obtiens comme valeurs 0 (faux), 1 (vrai) et puis "" (qui ne sert à rien).

Pour le second cas, faudra utiliser l'extension RefFunctions et pareil, en mode catégorisé

Code:

geomintersects( 'sic','gid' ) is not null

(je pars du principe que le champ 'gid' est toujours renseigné). Cette formule renvoie pour chaque territoire le gid de l'entité de la couche "sic" qu'elle touche, Si elle ne renvoie pas de valeur, c'est qu'elle ne touche pas d'entité (donc 0, faux).
Je pense que

Code:

geomintersects( 'sic','gid' ) = 468

l'aurait aussi fait dans le premier cas.

Dernière modification par SANTANNA (Thu 29 October 2015 07:47)

Hors ligne

 

#3 Sun 01 November 2015 18:08

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 996

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Ah SANTANNA, toujours toi !

Merci pour cette réponse bien précise, et que je pense bien tester cette semaine. J'avoue avoir testé une première fois vite fait sans succès mais c'est le temps de digérer un "langage" que je découvre petit à petit ! (mais tu as tout décrit donc difficile de se planter tout de même !).

En tout cas, merci pour ton aide !!!

A plus tard,

Ciao

GlaDal

Hors ligne

 

#4 Mon 02 November 2015 08:40

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

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Salut,
attention: getFeature s'écrit désormais get_feature dans la 2.12 et je me demande s'il ne serait pas buggy (https://hub.qgis.org/issues/13695#note-7). Si tu peux Tester sur la 2.12 et une ancienne version pour confirmer ou pas ce serait cool.

Dernière modification par SANTANNA (Mon 02 November 2015 08:42)

Hors ligne

 

#5 Tue 22 October 2019 11:29

Maury Gérard
Participant occasionnel
Date d'inscription: 19 Jun 2019
Messages: 15

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Bonjour,

je relance ce post un peu ancien.
J'utilise QGIS 3.4

j'ai une couche "Commune", des polygones, et une couche "Reseau", des lignes.

Je voudrais colorier en vert les communes qui ont un réseau, donc les objets de la couche "commune" qui intersectent, ou contiennent ou touchent au moins un objet de la couche "réseau".

j'ai installé l'extension RefFunction. J'ai ensuite essayé plusieurs des fonctions de cette extension mais je n'arrive pas au résultat attendu. En fait, il ne se passe rien !

Où est ce que je fais une erreur ?

Par avance, merci

Hors ligne

 

#6 Tue 22 October 2019 11:29

Maury Gérard
Participant occasionnel
Date d'inscription: 19 Jun 2019
Messages: 15

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

bonjour,

Dernière modification par Maury Gérard (Tue 22 October 2019 12:50)

Hors ligne

 

#7 Tue 22 October 2019 11:30

Maury Gérard
Participant occasionnel
Date d'inscription: 19 Jun 2019
Messages: 15

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Bonjour,

Dernière modification par Maury Gérard (Tue 22 October 2019 12:50)

Hors ligne

 

#8 Tue 22 October 2019 11:30

Maury Gérard
Participant occasionnel
Date d'inscription: 19 Jun 2019
Messages: 15

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Bonjour,

je relance ce post un peu ancien.
J'utilise QGIS 3.4

j'ai une couche "Commune", des polygones, et une couche "Reseau", des lignes.

Je voudrais colorier en vert les communes qui ont un réseau, donc les objets de la couche "commune" qui intersectent, ou contiennent ou touchent au moins un objet de la couche "réseau".

j'ai installé l'extension RefFunction. J'ai ensuite essayé plusieurs des fonctions de cette extension mais je n'arrive pas au résultat attendu. En fait, il ne se passe rien !

Où est ce que je fais une erreur ?

Par avance, merci

Hors ligne

 

#9 Wed 23 October 2019 15:04

Maury Gérard
Participant occasionnel
Date d'inscription: 19 Jun 2019
Messages: 15

Re: QGIS 2.12: Afficher un objet intersecté par un objet d'autre couche

Bonjour,

j'ai trouvé ce qui n'allait pas.
Les 2 couches n’étaient pas dans le même système de coordonnées.

Cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB