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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Sun 12 July 2020 09:08

Tr4ctopelle
Juste Inscrit !
Date d'inscription: 11 Jul 2020
Messages: 2

QGIS: Mise en forme selon les relations spatiales entre 2 couches

Bonjour,

J'ai un problème qui concerne les relations spatiales dans QGIS :
J'ai une couches de polygones (les départements français), et une couche de points sur tout le territoire que j'implémente petit-à-petit.

Je voudrais mettre en valeur les départements qui ne contiennent aucun point.

Je sais faire les requêtes spatiales du type "sélectionner les départements qui ne contiennent pas de point", mais ce ne sont que des sélections temporaires. Je sais aussi qu'on peut extraire le nombre de points contenus dans un polygone, en passant par une couche temporaire, mais il faut faire la manipulation à chaque fois.

J'aimerais que la couleur des départements change automatiquement s'ils répondent ou non à cette condition, sans que j'aie besoin de refaire une requête à chaque fois que j'alimente ma couche de points.

Dans les paramètres de styles des couches, j'ai beau chercher des paramètres avancés (mise en forme basée sur des règles, assistant de couleur), je ne trouve pas le moyen d'écrire une requête qui fait intervenir deux couches différentes et leurs relations spatiales.

Merci !

Hors ligne

 

#2 Mon 13 July 2020 09:38

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

Re: QGIS: Mise en forme selon les relations spatiales entre 2 couches

Bonjour,

Une couche virtuelle fondée sur une requête de ce type devrait faire l'affaire (Couche -> Créer une couche -> Nouvelle couche virtuelle) :

Code:

select *, (select count(*) from points p where within(p.geometry, d.geometry)) nb from departements d

En veillant à ce que les couches aient un index spatial.


Christophe Damour (SIGéal)

Hors ligne

 

#3 Wed 15 July 2020 11:06

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

Re: QGIS: Mise en forme selon les relations spatiales entre 2 couches

Bonjour,
En fait, et si j'ai bien compris, il vous faut appliquer à votre couche départements une symbologie qui distingue si elle a des points ou pas.
Dans les propriétés de la couche départements, symbologie, catégorisé, utiliser une expression du type

Code:

aggregate('lacouchedepoints', 'count', $id, within($geometry, geometry(@parent))) = 0

Vous trouverez d'autres exemples de ce type d'expressions sur le forum avec explication si vous voulez. En gros on dénombre pour chaque département le nombre d'entités points à l'intérieur et on vérifie si ce nombre est nul ou pas. La symbologie renvoie donc deux valeurs: vrai (1) et faux (0) et vous appliquez à chacune le rendu de votre choix. A chaque modification de la couche points, le rendu de la couche département sera régénérée conformément.

Hors ligne

 

#4 Thu 16 July 2020 17:41

Tr4ctopelle
Juste Inscrit !
Date d'inscription: 11 Jul 2020
Messages: 2

Re: QGIS: Mise en forme selon les relations spatiales entre 2 couches

Bonjour,

Merci beaucoup à vous deux !
Je n'ai pas encore eu le temps de mettre vos conseils en application, mais je pense que cela m'aidera beaucoup.

Merci encore

Hors ligne

 

Pied de page des forums

Powered by FluxBB