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 Mon 18 April 2016 08:13

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

QGIS 2.14: Polygones inversés "sélectifs"

Bonjour à tous,

Une utilisatrice MapInfo m'a posé une colle il y a peu et malgré d'intenses recherches, je n'ai toujours pas trouvé comment réaliser la même chose sur QGIS. Du coup, je vous expose sa question :

Je souhaite que certaines couches soient masquées à l'extérieur de polygones (l'équivalent de l'outil de géotraitement Découper dans QGIS) mais uniquement avec le style de couche, sans découper quoi que ce soit, pour des raisons pratiques.

OK, sur le moment c'était pas très clair non plus, alors voilà une image de quoi ça devrait avoir l'air :

[img]http://georezo.net/forum/attachment.php?item=6959&download=1[/img]

Et voici la même sans masquage :

[img]http://georezo.net/forum/attachment.php?item=6960&download=1[/img]

J'ai tenté le coup avec les polygones inversés et le remplissage raster pour ajouter l'orthophoto, ça marche presque mais les coordonnées du raster ne sont pas prises en compte, du coup il s'affiche n'importe comment...

D'avance merci pour votre aide wink

Dernière modification par romainbh (Mon 18 April 2016 08:14)


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

Hors ligne

 

#2 Mon 18 April 2016 08:44

Elodiecg
Participant occasionnel
Date d'inscription: 19 Jun 2007
Messages: 16

Re: QGIS 2.14: Polygones inversés "sélectifs"

Bonjour,

Peut-être que l'extension "Mask" pourrait vous être utile : https://github.com/aeag/mask/wiki

Bonne journée

Hors ligne

 

#3 Mon 18 April 2016 10:59

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Merci Elodie pour la proposition, j'avais testé ce plugin avec l'espoir que cela fonctionne mais, malheureusement, il ne permet d'appliquer un masque sélectif que sur les étiquettes.

Je continue les recherches wink

Hors ligne

 

#4 Mon 18 April 2016 11:43

haubourg
Participant assidu
Lieu: Grenoble
Date d'inscription: 7 Sep 2005
Messages: 257
Site web

Re: QGIS 2.14: Polygones inversés "sélectifs"

romainbh a écrit:

Merci Elodie pour la proposition, j'avais testé ce plugin avec l'espoir que cela fonctionne mais, malheureusement, il ne permet d'appliquer un masque sélectif que sur les étiquettes.

Je continue les recherches wink


Bonjour,

L'objectif est bien de cacher une couche en dehors d'un polygone mais en laissant les fonds sous jacents quand même? 


Vous pouvez utiliser le plugin mask qui va fournir une variable python $in_mask qui vous permettra de faire une analyse par règle ou une expression sur la transparence des symboles.
Cordialement
Régis

Dernière modification par haubourg (Mon 18 April 2016 11:44)


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

Hors ligne

 

#5 Mon 18 April 2016 21:06

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Merci haubourg pour cette découverte, c'est très pratique pour les objets ponctuels !

Mais - bien malheureusement - ça ne fonctionne pas avec les lignes et polygones qui ne sont pas intégralement contenus dans le masque. Dommage, ça aurait été la classe !

L'objectif est en effet de cacher certaines couches seulement (en général les couches vecteur) hors d'un ou plusieurs polygones tout en laissant apparaitre intégralement d'autres couches (en général des fonds raster). Ce serait une sorte de mode de rendu "Polygone inversé" de QGIS avec la possibilité de choisir les couches masquées.

Au final, je pense qu'un tel rendu n'est pas (encore wink ) possible avec QGIS.

Hors ligne

 

#6 Tue 19 April 2016 00:04

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Bonsoir,

Au final, je pense qu'un tel rendu n'est pas (encore wink ) possible avec QGIS.


Je pense (pas réellement testé toutefois) que cela devrait être possible en combinant avec les fonctions overlaps ou intersects, attribute... en gros, essaie d'enrichir un peu la formule (à moins que le plugin ait déjà prévu cette situation)

Hors ligne

 

#7 Tue 19 April 2016 10:36

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Tu as raison Santanna, les fonctions peuvent être combinées avec ou sans le plugin Mask pour que les entités s'affichent ou non, par exemple avec :

Code:

overlaps( $geometry, geometry(get_feature( 'surface','id',1)))

Mais mon souci est que les liges et polygones qui intersectent avec ma surface de base s'affichent entièrement, même au-delà de ma surface de base. Leur affichage ne s'arrête pas aux frontières de ma surface comme dans le cas d'un polygone inversé. sad

On va bien finir par trouver (ou développer un truc) un jour wink

Hors ligne

 

#8 Tue 19 April 2016 14:06

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Salut,
Avec la symbologie "Générateur de géométrie", donc

Code:

intersection($geometry, geometry(get_feature( 'surface','id',1)))

On modifie en représentation, la géométrie de l'objet (ici, une petite découpe)

Dernière modification par SANTANNA (Tue 19 April 2016 14:07)

Hors ligne

 

#9 Tue 19 April 2016 21:07

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Wouhouhou ! big_smile

Je n'avais même pas vu l'arrivée de ce "générateur de géométrie" ! Et le résultat est excellent, c'est quasi magique, merci pour cette belle découverte wink La classe mondiale !

J'ai essayé de modifier la formule pour qu'elle s'applique à toute la couche 'surface' et non une entité précise, mais en vain pour l'instant. Je ferai  des essais ces prochains jours smile

Hors ligne

 

#10 Fri 22 April 2016 22:49

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Un petit retour sur mes recherches smile

Pour l'instant je n'ai pas trouvé un moyen simple de masquer sélectivement chaque polygone d'une couche par une autre... Mais j'ai la piste de l'atlas :

Il suffit d'utiliser ce code dans le style de la couche à masquer et d'activer la génération d'atlas dans un composeur :

Code:

intersection($geometry, $atlasgeometry)

Et c'est magique, ça marche ! Bizarrement, les variables propres aux atlas ne s'affichent plus dans ma calculatrice, j'ai dû aller les pomper dans l'aide officielle de QGIS. Bug ?

Mais bien que tout soit exporté correctement avec l'atlas, tout ne s'affiche pas en même temps... Donc, pour contourner le truc, j'ai groupé tous les objets lignes ou polygones de ma couche à masquer en un seul objet multigéométrie, puis j'ai activé l'atlas comme ci-dessus. C'est bourrin, mais ça marche.

L'idéal serait de trouver le moyen de "grouper virtuellement" tous les objets de la couche en un seul dans la formule, un truc du style (ce code ne fonctionne pas, c'est juste pour l'idée) :

Code:

intersection($geometry, geometry(group('nom_du_calque')))

C'est peut-être possible en Python..? Bref, affaire à suivre wink

Hors ligne

 

#11 Wed 27 April 2016 16:25

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Bonjour,

J'aimerais pouvoir faire la même chose avec la couche "région" de la BD Carto de l'IGN sur la région de Bourgogne seulement je n'arrive pas à faire ce que je veux. J'ai pourtant bien repris la formule en l'adaptant à ma couche mais rien à faire :

Code:

intersection($geometry, geometry(get_feature( "REGION",'INSEE_REG', '26' )))

J'avoue ne pas maitriser du tout ce langage et apprends petit à petit (d'ailleurs connaissez vous une formation qui propose d'apprendre le SQL pour la manipulation de donnée spatiale ?), si quelqu'un peut m'aider, je suis preneur !

D'avance merci

Gladal

Hors ligne

 

#12 Wed 27 April 2016 17:57

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Salut,
'REGION' et non "REGION"

Hors ligne

 

#13 Wed 27 April 2016 17:58

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Oui oui, j'ai aussi mis les apostrophes au lieu des guillemets mais ça ne fonctionne pas non plus !:-(

Hors ligne

 

#14 Wed 27 April 2016 20:46

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 2.14: Polygones inversés "sélectifs"

Essaie 26 sans les apostrophes vu que c'est un nombre et pas du texte, à tout hasard... ?

Hors ligne

 

#15 Thu 28 April 2016 13:23

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Bien vu, romainbh. Il y a aussi les apostrophes autour du 26, qui est une valeur et doit donc respecter le type de champ.

Hors ligne

 

#16 Wed 04 May 2016 07:46

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

Re: QGIS 2.14: Polygones inversés "sélectifs"

Oui oui, j'avais également testé ! Mais je vais quand même réessayer (j'ai tout de même un doute !!! :-)

héhé

Hors ligne

 

Pied de page des forums

Powered by FluxBB