#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
Dernière modification par romainbh (Mon 18 April 2016 08:14)
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
Hors ligne
#4 Mon 18 April 2016 11:43
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
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)
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 ) possible avec QGIS.
Hors ligne
#6 Tue 19 April 2016 00:04
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
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é.
On va bien finir par trouver (ou développer un truc) un jour
Hors ligne
#8 Tue 19 April 2016 14:06
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
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 !
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 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
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
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
Hors ligne
#11 Wed 27 April 2016 16:25
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1100
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: 3945
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: 1100
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: 3945
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: 1100
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