#1 Fri 28 February 2025 10:44
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
QGIS: Infobulle sur polygone
Bonjour,
J'ai créé un polygones qui me permet de regrouper et découper plusieurs parcelles pour différencier les plantations. J'ai donc créé ce polygone dans la couche de mes parcelles (en gpkg), je lui ai donné un identifiant dans ma table d'attribut ainsi que dans les tables jointes, travaux, traitement, prévision... mais je n'arrive pas à faire apparaitre les informations concernant le polygone.
alors es ce parce que QGIS prend toujours en compte la présence des parcelles sous le polygone ou parce que infobulle ne peut traiter un polygone ?
Et je ne souhaite pas écraser les éléments de parcelles.
a priori infobulle prend bien les infos de la couche parcelle et non pas celles du polygone ? (Voir capture écran).
Merci
Marcopololo
J'ai fait un test en créant une nouvelle couche avec polygones et là infobulle fonctionne bien en me mettant sur la couche, mais bien sur je n'ai plus les infos bulles de ma couche parcelles...
Dernière modification par Marcopololo (Fri 28 February 2025 11:03)
Hors ligne
#2 Sun 02 March 2025 23:15
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
Bon, j'ai avancé et pris le problème à l'envers. L'idée est donc de créer une couche gpkg avec mes polygones permettant de différencier les parcelles avec différents type de plantation. Par contre je n'arrive pas à récupérer la table attributaire où se trouve les informations de toutes les parcelles.
Est il possible d'ajouter à une couche une autre table attributaire sans passer par les jointures puisque je n'ai pas de champ commun ? Mes deux tables ayant les mêmes champs bien sûr.
Merci de votre aide.
Marcopololo
Hors ligne
#3 Mon 03 March 2025 11:36
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
Je viens de rajouter une ligne qui masque les infos de la zone inférieure (celle d'origine) en fonction d'une case à coché, mais je n'arrive toujours pas à faire apparaitre les informations des polygones ajoutés
Code:
[% CASE WHEN "decoup" is not null THEN '' WHEN "liste_arbres_Annee" is not null THEN '<p><strong>Plantation :<i>'||"liste_arbres_Annee"||'</i></strong></p>' END %]
Comment choisir ce que l'on veut apparaitre dans infobulles. En créant une nouvelle couche cela fonctionne, il me reste juste le problème de pouvoir utiliser la table attributaire "parcelles" et ses données dans la table attributaire de la couche polygones.
Hors ligne
#4 Mon 03 March 2025 12:07
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4025
Re: QGIS: Infobulle sur polygone
Bonjur,
à défaut d'attributs communs, rabattez-vous sur la superposition de géométries pour récupérer les infos. Regardez du côté des fonctions overlay...
Hors ligne
#5 Mon 03 March 2025 17:40
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
Si j'ai bien compris le mode opératoire (que je n'arrive pas à mettre en oeuvre) c'est :
Ma parcelle par exemple D574 (couche parcelles) est découpée en plusieurs entités, D574a, D574b, D574c (couches polygones) et lorsque je passe sur ces polygones en restant dans la couche parcelles je veux voir s'afficher les infos des polygones et non de la parcelle.
Ma couche parcelles est celle où je veux récupérer et afficher les informations
Ma couche polygone est celle où se trouve l'information par exemple surface_calc
J'ai donc écrit dans le code html dans la couche parcelles :
Code:
overlay_within('polygones_parcelles',surface_calc)
Mais cela me renvoie aucune valeur.
J'ai aussi essayé, contains et intersect, même résultat.
J'ai aussi essayé sans mettre surface_calc mais quelque soit les parcelles il me renvoie toujours l'argument False.
il y a quelque chose que ne fais pas bien mais quoi...
Marcopololo
Ou alors cela ne fonctionne que pour rajouter un champ dans une table et pas pour faire de l'affichage ?
Dernière modification par Marcopololo (Mon 03 March 2025 17:52)
Hors ligne
#6 Wed 05 March 2025 11:46
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
J'ai avancé et compris le sens de cette fonction, mais j'ai encore un blocage. Mon soucis c'est que les données que je veux afficher sont dans la couche polygone et que je ne peux pas faire de jointure car il n'y a pas de champ commun.
Voici ce que j'ai fait et j'arrive bien à afficher la surface du champ si couche parcelles et l'info ok s'il y a des polygones.
Code:
[% CASE WHEN overlay_contains('polygones decoupage parcelles') THEN 'OK' ELSE "SURFACE" ||' ares' END %]
Es ce que
Code:
Select surface_calc from polygone
pourrait être possible ? Je vais essayé
Dernière modification par Marcopololo (Wed 05 March 2025 12:38)
Hors ligne
#7 Wed 05 March 2025 23:52
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
Bon je continue à ramer mais j'ai changé de technique, n'arrivant pas à mes fins.
J'ai au départ une couche parcelles et une autre polygones. J'ai ensuite fusionné les deux en prenant bien soin d'ajouter un indice aux parcelles découpées (couche polygones).
J'ai ensuite testé deux codes que voici :
Code:
[% CASE WHEN overlay_contains('polygones decoupage parcelles') THEN "surface_calc" ou 'OK' ELSE "SURFACE" ||' ares' END %] <!Second code> [% CASE WHEN "indice_parc" is not null THEN array_to_string( array("Num_parc","surface_calc"),' - ')||'ares' ELSE array_to_string( array("Num_parc","SURFACE"),'- ')||' ares' END %]
Alors pour overlay lorsque je met après THEN, 'OK' l'info bulle me renvoie bien OK, par contre si je lui demande d'afficher le champ surface_calc, qui est la surface d'un polygone il ne m'affiche rien, pourtant le champ existe bien dans la table fusionnée
Pareil pour l'autre code, dans ce cas là c'est toujours les valeurs de surface de la couche parcelles qui est prise en compte.
Es ce parce que prenons la parcelle D574 découpée en a, b et c donc D574a, D574b et D574c, la parcelle D574 existe aussi dans la table fusionnée ?
J'espère avoir été clair.
Merci d'avance de votre aide.
Marcopololo
Dernière modification par Marcopololo (Wed 05 March 2025 23:54)
Hors ligne
#8 Thu 06 March 2025 10:20
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4025
Re: QGIS: Infobulle sur polygone
Bonjour,
Je vous avoue que je suis perdu dans vos exemples car les noms de couches dans le code ne correspondent pas à ce que vous énoncez au départ ou ne sont pas préalablement expliqués, donc ai du mal à suivre.
Mais je crois avoir compris le besoin, et pour repartir d'une base simple: supposant que vous voulez afficher sur la couche "pays", le nom des "regions" contenues dans ce pays, ça donnerait en formule sur la couche pays (cf. exemple 3 de la fonction overlay_contains)
Code:
array_to_string(overlay_contains('regions', nom))
vous remplacez nom (un champ de la couche regions) par ce que vous voulez comme formule ou champ. Essayez déjà d'adapter ça, et après vous verrez comment ajouter des conditions ou autres.
Hors ligne
#9 Fri 07 March 2025 09:03
- Marcopololo
- Participant actif
- Date d'inscription: 23 Nov 2021
- Messages: 60
Re: QGIS: Infobulle sur polygone
Merci Santanna et encore désolé de mes explications brouillons, je pense que je n'ai pas saisis encore toutes les subtilités et aspects des couches et polygones et je viens de comprendre certaines choses.
Je ne suis pas certain que ce que je veux faire soit possible :
J'ai ma couche parcelles du cadastre que j'utilise comme base. Dans la plupart des cas une parcelle = un type de plantation, mais récemment après avoir racheté et regroupé quelques parcelles je me retrouve avec des parcelles où il y a plusieurs types de plantation.
Quand j'ai une parcelle avec plusieurs type de plantations cela va bien, j'ai compris qu'il suffisait d'utiliser remplir l'anneau dans les outils de numérisation avancée et le tour est joué. J'ai bien ensuite mon infobulle qui me donne les bons renseignements de mon anneau de ma zone de plantation.
Où je rencontre un problème c'est si je veux créer un polygone qui regroupe plusieurs parcelles (nouvelle plantation sur plusieurs parcelles) mais dont une partie est déjà une futaie et que je veux ensuite créer un anneau sur ce polygone, dans ce cas je n'arrive pas à avoir les informations de mon anneau mais les informations de la couche tout en dessous (celles de parcelles). Et à priori on ne peut pas créer un anneau sur deux parcelles différentes, il faut donc que je créé tout d'abord un polygone de regroupement avant de remplir des anneaux à l'intérieur de celui-ci.
Es ce là qu'il faut utiliser la fonction overlay ?
Encore merci de toute votre aide.
Marcopololo
Dernière modification par Marcopololo (Fri 07 March 2025 09:05)
Hors ligne