La fenêtre Propriétés de la couche pour une couche vectorielle fournit des informations sur la couche, les paramètres de représentation et les options d’étiquetage. Si votre couche a été chargée depuis une base PostgreSQL/PostGIS, vous pouvez également modifier la requête SQL d’appel de la couche, en l’éditant dans la fenêtre Constructeur de requête de l’onglet Général. Pour accéder à la fenêtre Propriétés de la couche, double-cliquez sur la couche dans la légende ou faites un clic droit sur la couche et sélectionnez Propriétés dans le menu qui apparait.
Figure Vector Properties 1:
L’onglet Style fournit un outil complet pour le rendu et la gestion de la sémiologie des couches vectorielles. Il permet de gérer le Rendu de couche ‣, avec un ensemble d’outils communs à tous les types de couche, et la sémiologie, avec des outils spécifiques à chaque type de couche.
Transparence de la couche : permet de rendre visible les couches situées en dessous. Utiliser le curseur pour adapter la visibilité de la couche vectorielle à vos besoins. Vous pouvez également définir directement le pourcentage de transparence dans la zone de texte située à côté.
Normal : il s’agit du mode de fusion standard qui utilise la valeur de transparence (canal alpha) du pixel supérieur pour le fusionner avec le pixel sous-jacent, les couleurs ne sont pas mélangées.
Depuis la version 2.0 de QGIS, l’ancien système de symbologie n’est plus disponible et le nouveau système a été complètement revu.
The renderer is responsible for drawing a feature together with the correct symbol. There are four types of renderers: single symbol, categorized, graduated and rule-based. There is no continuous color renderer, because it is in fact only a special case of the graduated renderer. The categorized and graduated renderer can be created by specifying a symbol and a color ramp - they will set the colors for symbols appropriately. For point layers there is a point displacement renderer available. For each data type (points, lines and polygons) vector symbol layer types are available. Depending on the chosen renderer, the Style menu provides different following sections. On the bottom right of the symbology dialog there is a [Symbol] button which gives access to the Style Manager (see Section vector_style_manager). The Style Manager allows you to edit and remove existing symbols and add new ones.
Astuce
Sélectionner et modifier plusieurs symboles
Il est possible de sélectionner plusieurs symboles, de faire un clic-droit dessus et de changer d’un coup leur couleur, leur transparence, leur taille ou leur épaisseur.
Symboles uniques
Le mode de rendu en symbole unique est utilisé pour représenter toutes les entités de la couche de la même façon, définie par l’utilisateur. Les propriétés, qui peuvent être ajustées dans l’onglet Style, dépendent du type de géométrie de la couche, mais partagent une structure similaire. En haut à gauche figure un aperçu du symbole tel qu’il apparaîtra. A droite est affichée la liste des symboles déjà existants pour le style courant, prêts à être sélectionnés d’un simple clic. Le symbole courant peut être modifié en utilisant les outils à droite de l’aperçu.
Si vous cliquez sur le premier niveau de la liste Couche de symboles, sur la gauche, il est possible de choisir un certain nombre de paramètres basiques comme la Taille, la Transparence, la Couleur ou l’angle de Rotation. Ces paramètres s’appliquent à toutes les couches de symboles.
Figure Symbology 1:
Des réglages plus détaillés sont accessibles en cliquant sur le deuxième niveau dans le cadre Couches de symboles. Vous pouvez définir des Couches de symboles qui seront combinées par la suite. Un symbole peut être constitué de plusieurs Couches de symboles. Les options suivantes sont possibles :
Type de symbole: Vous avez la possibilité entre Symbole d’ellipse, Symbole de police, Symbole simple, Symbole SVG et Symbole de champ vectoriel
Taille
Couleurs
Largeur du contour
Décalage X,Y : vous pouvez déplacer les symboles en x ou y
Note that once you have set the size in the lower levels the size of the whole symbol
can be changed with the Size menu in the first level again. The size of
the lower levels changes accordingly while the size ratio is maintained.
After having done any needed changes, the symbol can be added to the list of
current style symbols (using the [Symbol] Save in symbol library)
and then easily be used in the future. Furthermore you can use the [Save Style]
button to
save the symbol as a QGIS layer style file (.qml) or SLD file(.sld). Currently
in version 2.0 SLDs can be exported from any type of renderer: single symbol,
categorized, graduated or rule-based, but when importing an SLD, either a
single symbol or rule-based renderer is created.
That means that categorized or graduated styles are converted to rule-based.
If you want to preserve those renderers, you have to stick to the QML format.
On the other hand, it could be very handy sometimes to have this easy way of
converting styles to rule-based.
With the Style manager from the [Symbol] menu you can administrate your
symbols. You can
add item,
edit item,
remove item
and
share item. ‘Marker’ symbols, ‘Line’ symbols, ‘Fill’ patterns and ‘Color ramps’
can be used to create the symbols (see defining_symbols). The symbols are assigned to ‘All Symbols’,
‘Groups’ or ‘Smart groups’ then.
Symboles catégorisés
Le rendu Catégorisé est utilisé pour représenter toutes les entités d’une couche classées par catégorie qui dépend d’un des attributs de l’entité. L’onglet Style permet de sélectionner :
l’attribut (en choisissant parmi la liste des colonnes)
le symbole (en utilisant la fenêtre de Sélection de symbole)
les couleurs (en utilisant la liste de palettes de couleur)
Le bouton [Avancé] dans le coin inférieur droit de la fenêtre permet de choisir un champ pour faire varier l’angle de rotation et la taille des symboles. Tous les champs de la couche sont alors disponibles, même s’ils ne sont pas utilisés pour le rendu par catégorie.
L’exemple de la figure figure_symbology_2 montre le rendu des catégories de la couche des rivières de l’échantillon de données de QGIS.
Figure Symbology 2:
Vous pouvez créer des palettes de couleur personnalisées en choisissant Nouvelle palette de couleur... depuis la liste déroulante Palette de couleur. Une fenêtre vous propose alors de choisir entre différents types de palette : Dégradé, Aléatoire, Mélangeur de couleur ou cpt-city. Les trois premiers permettent de choisir le nombre de couleurs et leurs positions dans la palette. Voir figure_symbology_3 pour un de ces exemples de palette et figure_symbology_3a pour les palettes de type cpt-city.
Figure Symbology 3:
Le type cpt-city ouvre une fenêtre qui permet de choisir parmi des centaines de palettes prédéfinies.
Figure Symbology 3a:
Symboles gradués
Le rendu gradué est utilisé pour afficher toutes les entités d’une couche, en utilisant un symbole de couche défini par l’utilisateur dont la couleur reflètera la plage d’appartenance d’une valeur d’un attribut (p. ex. une plage d’altitude de 0 à 100m).
Figure Symbology 4:
De la même manière que le rendu catégorisé, il est possible de faire varier l’angle de rotation et la taille des symboles selon les valeurs des champs spécifiés.
De la même façon que le rendu catégorisé, l’onglet Style vous permet de modifier les points suivants :
l’attribut (en choisissant parmi la liste des colonnes)
le symbole (en utilisant le bouton changer)
la couleur (en utilisant la liste des palettes de couleur)
De plus, vous pouvez choisir le nombre de classes et la méthode de classification. Les modes disponibles sont :
Intervalles égaux
Quantiles
Ruptures naturelles (Jenks)
Écart-type
Jolies ruptures (“Pretty” de R)
La zone de liste dans la partie centrale du menu Style répertorie les classes ainsi que leurs étendues, étiquettes et symboles de rendu.
L’exemple de la figure figure_symbology_4 montre le rendu gradué de la couche des rivières de l’échantillon de données de QGIS.
Rendu basé sur un ensemble de règles
Ce moteur de rendu est utilisé pour afficher toutes les entités d’une couche en utilisant un ensemble de règles prédéfinies dont la couleur reflète la manière dont une entité a été classée en fonction de ses attributs. Les règles sont définies par des expressions SQL. La fenêtre permet de regrouper les règles par type de filtre ou échelle de validité. Vous pouvez activer le rendu selon les niveaux de symboles ou arréter le rendu à la première règle validée pour chaque entité.
L’exemple de la figure figure_symbology_5 montre le rendu basé sur des règles pour la couche des rivières de l’échantillon de données de QGIS.
Pour créer une règle, Activez une ligne existante en cliquant dessus ou cliquez sur ‘+’ puis sur la nouvelle règle. Appuyez ensuite sur le bouton [Editer]. Dans la fenêtre de Propriétés de la règle, vous pouvez définir une étiquette pour la règle. Appuyez sur le bouton pour ouvrir la fenêtre de constructeur de chaine d’expression. Dans la Liste de fonctions, cliquez sur Champs et Valeurs pour voir tous les attributs de la couche. Pour ajouter un attribut dans le champ Expression de la calculatrice, faites un double-clic sur ce champ dans la liste. En général, vous pouvez utiliser les différents champs, valeurs et fonctions listés pour construire votre expression de calcul ou vous pouvez juste la saisir dans la boîte (voir Calculatrice de champ).
Figure Symbology 5:
Déplacement de point
Le rendu de déplacement de point offre une visualisation de tous les points d’une couche, même si ceux-ci se superposent. Pour se faire, les symboles des points sont répartis en cercle autour d’un symbole central.
Figure Symbology 6:
Astuce
Exporter le style d’une couche vecteur
You have the possibility to export vector symbology from QGIS into the Google .kml, *.dxf and MapInfo.tab files. Just open the right mouse menu of the layer and click on Save selection as ‣ to define the name of the output file and its format. Use the Symbology export menu to save the symbology either as Feature symbology ‣ or as Symbol layer symbology ‣. If you have used symbol layers it is recommended to use the second setting.
Le moteur d’ Étiquettes fournit un système d’étiquetage intelligent pour les couches de points, lignes et polygones et ne nécessite que peu de paramètres. Ce nouveau système gère les couches reprojetées à la volée. Les fonctionnalités principales ont été re-designées et QGIS 2.0. en propose de nouvelles qui améliorent l’étiquetage. Les menus suivants ont été créés :
Texte
Formatage
Tampon
Fond
Ombre
Emplacement
Rendu
Voyons ce que l’on peut faire avec les nouveaux onglets pour chaque type de couche.
Étiqueter une couche de points
Lancez QGIS et chargez une couche vectorielle de points. Sélectionnez la couche dans la légende et cliquez sur le bouton Paramètres d’étiquetage de la couche de la barre d’outils QGIS.
La première étape consiste à cocher la case Etiqueter cette couche avec et à sélectionner un champ attributaire à utiliser pour l’étiquette. Cliquez sur
si vous souhaitez définir les étiquettes en vous basant sur des expressions.
Les étapes présentées ci-dessous décrivent un étiquetage simple, sans utilisation des fonctions de Valeurs définies par les données situées à droite des paramètres à définir.
You can define the text style in the Text menu (see Figure_labels_1 ). A new function is the Type case option where you can influence the text rendering. You have the possibility to render the text ‘All uppercase’, ‘All lowercase’ or ‘Capitalize first letter’. Also, a new function in QGIS 2.0 is the use of blend modes (see blend_modes).
Dans le menu Formatage, vous pouvez définir un caractère de retour à la ligne afin de découper l’étiquette sur de multiples lignes. Utilisez l’option Nombres formatés pour formater les valeurs numériques de la table attributaire. Les chiffres après la virgule sont insérés. L’activation de cette option ajoute par défaut trois chiffres après la virgule.
Pour créer un tampon, cochez simplement la case Afficher un tampon depuis le menu Tampon. La couleur du tampon est personnalisable et une des nouvelles fonctionnalités de QGIS 2.0 permet d’appliquer un mode de fusion (voir blend_modes).
If the Color buffer’s fill checkbox is activated, it will interact with partially transparent
text and give mixed color transparency results. Turning off the buffer fill fixes that issue (except where the interior
aspect of the buffer’s stroke intersects with the text’s fill) and also allows the user to make outlined text.
Dans le menu Fond, vous pouvez définir la forme de votre arrière-plan avec Taille X et Taille Y. Utilisez Taille selon pour ajouter une zone de ‘Tampon’ à votre arrière-plan. La taille du tampon est définie par défaut ici. Le fond est alors constitué de la zone tampon et du fond défini par les valeurs Taille X et Taille Y. Vous pouvez aussi définir une Rotation correspondant à ‘Angle de l’étiquette’, ‘Angle par rapport à l’étiquette’ ou encore ‘Valeurs fixes’. Définissez un Décalage X,Y avec les valeurs X et Y et le fond sera déplacé. En appliquant Angles arrondis X,Y, l’arrière-plan s’arrondit aux angles. Il est également possible de fusionner le fond avec les couches sous-jacentes dans la fenêtre de carte en utilisant le Mode de fusion (voir blend_modes).
Use the Shadow menu for a user-defined Drop shadow. The drawing of the background is very variable.
Choose between ‘Lowest label component’, ‘Text’, ‘Buffer’ and ‘Background’. The Offset angle depends on the orientation
of the label. If you choose the Use global shadow checkbox then the zero point of the angle is
always oriented to the north and doesn’t depend on the orientation of the label. Influence the appearance of the shadow
with the Blur radius. The higher the number, the softer the shadows.
L’apparence de l’ombre portée peut également être modifiée en choisissant un mode de fusion (voir blend_modes).
Sélectionnez le menu Emplacement pour définir la position de l’étiquette et les priorités d’étiquetage. L’option Autour du point offre maintenant la possibilité d’utiliser les Quadrants pour placer l’étiquette. En outre, vous pouvez modifier l’orientation de l’étiquette avec l’option Rotation. Ainsi, un placement dans un quadrant donné avec une rotation donnée est désormais possible.
In the Rendering menu you can define label and feature options. In the Label options
you find the scale-based visibility setting now. You can prevent QGIS from rendering only selected labels with
the Show all labels for this layer (including colliding labels) checkbox.
In the Feature options you can define if every part of a multipart feature is to be labeled. In QGIS 2.0 now it’s possible to define
if the number of features to be labeled is limited and to
Discourage labels from covering features.
Figure Labels 1:
Étiqueter une couche de lignes
La première étape consiste à cocher la case Etiqueter cette couche avec dans l’onglet Étiquettes et à sélectionner un champ attributaire à utiliser pour l’étiquette. Cliquez sur
si vous souhaitez définir les étiquettes en vous basant sur des expressions.
Ensuite, vous pouvez définir le style de texte dans le menu Texte. Les options, identiques à celles proposées pour les couches de points, sont disponibles.
De même dans le menu Formatage, les paramètres sont identiques à ceux des couches de points.
Le menu Tampon offre les mêmes fonctions que celles définies dans la section labeling_point_layers .
Le menu Fond offre les mêmes entrées que celles définies dans la section labeling_point_layers .
Le menu Ombre offre les mêmes entrées que celles définies dans la section labeling_point_layers .
In the Placement menu you find special settings for line layers. The label can be placed
Parallel,
Curved or
Horizontal.
With the
Parallel and
Curved option come the following settings:
You can define the position
Above line,
On line
and
Below line. It’s possible to select several options at once.
QGIS will look for the optimal position of the label then. Remember that here you can
also use the line orientation for the position of the label.
Additionally you can define a Maximum angle between curved characters when
selecting the
Curved option (see Figure_labels_2 ).
Le menu Rendu offre presque les mêmes fonctions que celles définies pour les couches de points. Dans les Options des entités, vous pouvez maintenant Ne pas afficher d’étiquettes pour les entités plus petites que.
Figure Labels 2:
Étiqueter une couche de polygones
La première étape consiste à cocher la case Etiqueter cette couche avec et à sélectionner un champ attributaire à utiliser pour l’étiquette. Cliquez sur
si vous souhaitez définir les étiquettes en vous basant sur des expressions.
Le menu Texte définit le style de texte. Les options proposées sont identiques à celles des couches de points et de lignes.
Le menu :guilabel:`Formatage`permet de formater l’étiquette sur des lignes multiples comme pour les couches de points ou de lignes.
Comme pour les points et les lignes, vous pouvez définir une zone tampon autour du texte dans le menu Tampon.
Utilisez le menu Fond pour créer des arrière-plans personnalisés pour les étiquettes de polygones. Ce menu est identique à celui des couches de points ou de lignes.
Les entrées du menu Ombre sont identiques à celles des couches de points ou de lignes.
Le menu Emplacement propose des options spécifiques aux couches de polygones (voir Figure_labels_3). Il s’agit notamment de Décalage par rapport au centroïde,
Horizontal (lent),
Autour du centroïde,
Libre et
Selon le périmètre.
Avec l’option Décalage par rapport au centroïde, vous pouvez définir si le centroïde est celui du
polygone visible ou du
polygone complet. Cela signifie que soit le centroïde utilisé correspond à celui de la portion de polygone qui apparaît dans votre carte, soit il est défini par rapport au polygone en entier, que vous l’ayez entièrement affiché dans votre carte ou pas. Vous pouvez placer l’étiquette selon les quadrants et définir un décalage et une rotation. L’option
Autour du centroïde permet de placer l’étiquette autour du centroïde, à une certaine distance. Là encore, il y a la possibilité de définir si le centroïde est
polygone visible ou
polygone complet. Avec l’option
Selon le périmètre, vous pouvez définir une position et une distance de placement pour l’étiquette. Les positions possibles sont
Au-dessus de la ligne,
Sur la ligne,
En-dessous de la ligne et
Orientation de la ligne suivant la position.
Le sous-menu Rendu propose les mêmes fonctions que celles définies pour les couches de lignes. Dans les Options des entités, vous pouvez choisir de Ne pas afficher d’étiquettes pour les entités plus petites que.
Figure Labels 3:
Utiliser des valeurs de paramètres définies par les données pour l’étiquetage
With the data-defined override functions the settings for the labeling
are overwritten by entries in the attribute table.
You can activate/deactivate the function with the right-mouse button.
Hover over the symbol and you see the information about the data-defined override,
including the current definition field.
We now describe an example how to use the data-defined override function for the
Move label function (see figure_labels_4 ).
Importez la couche lakes.shp depuis le jeu de données test de QGIS.
Double-cliquez la couche pour ouvrir la fenêtre des propriétés. Sélectionnez Etiquettes puis Emplacement et enfin Décalage par rapport au centroïde.
Dans le cadre Défini par les données, cliquez sur l’icône pour définir le champ correspondant à la coordonnée. Choisissez ‘xlabel’ pour X et ‘ylabel’ pour Y. Les icônes revêtent maintenant une surbrillance jaune.
Zoomez sur un lac.
Sélectionnez l’outil de la barre d’outils Etiquettes. Vous pouvez maintenant déplacer l’étiquette manuellement vers une autre position (voir figure_labels_5). La nouvelle position est sauvegardée dans les colonnes ‘xlabel’ et ‘ylabel’ de votre table attributaire.
Figure Labels 4:
Figure Labels 5:
Le menu Champs permet de manipuler les champs attributaires du jeu de données sélectionné. Les boutons
Nouvelle colonne et
Supprimer la colonne peuvent être utilisés lorsque la couche est en
Mode édition.
Outils d’édition
Figure Fields 1:
Dans le menu Champs se trouve également une colonne Outil d’édition. Cette colonne peut être utilisée pour définir des valeurs ou des plages de valeurs à utiliser pour ce champ précis de la table attributaire. Si vous cliquez sur [Outil d’édition], il s’ouvre une fenêtre de dialogue dans laquelle vous pouvez définir différentes modalités. Celles-ci sont :
Édition de ligne : un champ d’édition qui permet d’entrer du texte simple (ou de restreindre à des nombres pour des attributs de type numériques).
Classification : Affiche une liste déroulante avec les valeurs utilisées pour la classification, si vous avez choisi le style ‘Catégorisé’ dans l’onglet Style de la fenêtre de propriétés.
Plage : Permet de spécifier une plage de valeurs numériques disponibles. Il peut s’agir d’une barre coulissante ou d’une zone de texte éditable.
Valeurs uniques : L’utilisateur peut sélectionner l’une des valeurs déjà utilisées dans cette colonne. Une ligne est affichée avec le support de l’auto-complétion si la case ‘Éditable’ est cochée, une boîte de saisie est utilisée sinon.
Nom de fichier : Simplifie la sélection d’un fichier par l’ouverture d’un explorateur de fichiers.
Liste de valeurs : Liste déroulante avec des valeurs prédéfinies. La valeur est stockée dans l’attribut, la description est affichée dans la liste. Vous pouvez défninir des valeurs manuellement ou les charger depuis la couche ou depuis un fichier CSV.
Énumération : Ouvre une liste déroulante avec les valeurs qui peuvent être utilisées selon la définition du type de champ. Ce mode d’édition n’est actuellement disponible que pour les couches PostgreSQL.
Immuable : Un attribut immuable est en lecture seule. L’utilisateur ne pourra pas le modifier.
Cachée : Un attribut caché sera invisible. L’utilisateur ne pourra pas visualiser son contenu.
Case à cocher : Affiche une case à cocher et vous pouvez définir quelle valeur stocker quand la case est cochée ou pas.
Édition de texte : Ouvre une zone d’édition de texte permettant les retours à la ligne.
Calendrier : Ouvre un calendrier permettant de choisir une date. Le champ doit être de type texte.
Valeur relationnelle : Propose les valeurs stockées dans un champ d’une autre table. Vous choisissez la table, le champ clé et le champ de valeur.
Générateur d’UUID : Champ en lecture seule qui génère un UUID (Identifiant Unique Universel) lorsqu’il est vide.
Photo : Champ contenant le nom d’un fichier de photo. La largeur et la hauteur peuvent être précisées.
Vue web : Champ contenant une URL. La largeur et la hauteur sont variables.
Couleur : Champ contenant un code couleur. Au moment de la saisie du code, une barre permet de visualiser la couleur.
With the Attribute editor layout you can now define builtin forms for data entry jobs (see figure_fields_2).
Choose ‘Drag and drop designer’ and an attribute column. Use the Icon to create
a category that then will be shown during the digitizing session (see figure_fields_3). Next step will be to
assign the relevant fields to the category with the
Icon. You can create
more categories and use the same fields again. When creating a new category QGIS
will insert a new tab for the category in the built in form.
D’autres options de la fenêtre sont ‘Autogénérer’ et ‘Fournir fichier ui’. ‘Autogénérer’ crée juste des éditeurs avec tous les champs séparés par des tabulations. L’option ‘Fournir un fichier ui’ permet d’utiliser des formulaires plus complexes, réalisés avec Qt-Designer. L’utilisation d’un fichier -UI vous offre une grande liberté pour créer vos fenêtres. Des informations détaillées sont disponibles à http://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/ .
Les fenêtres de QGIS peuvent être associées à une fonction python qui peut être appelée à l’ouverture de la fenêtre. Utilisez cette fonction pour ajouter des éléments supplémentaires à vos fenêtres. Un exemple est (dans le module MyForms.py):
def open(dialog,layer,feature):
geom = feature.geometry()
control = dialog.findChild(QWidged,"My line edit")
Reference in Python Init Function like so: MyForms.open
Le fichier MyForms.py doit être présent dans le PYTHONPATH, dans le dossier .qgis2/python ou dans le dossier du projet.
Figure Fields 2:
Figure Fields 3:
Utilisez cet onglet pour définir les paramètres généraux de la couche vecteur. Plusieurs options sont disponibles :
Informations sur la couche
Changez le nom affiché de la couche dans Nom de la couche
Définissez le fichier Source de la couche vectorielle
Définissez l’Encodage de la source des données pour spécifier le type d’encodage utilisé dans les données source et pour pouvoir les lire correctement
Système de Coordonnées de Référence
Specifier... le Système de Coordonnées de Référence. Ici vous pouvez visualiser ou modifier le SCR de la couche.
créer un Index Spatial (uniquement pour les formats supportés par OGR),
Mettre à jour l’emprise dans les informations de la couche,
Voir ou modifier la projection de la couche vecteur en cliquant sur Spécifier ...
Visibilité dépendante de l’échelle
Vous pouvez définir les échelles Maximum (inclusive) et Minimum (exclusive) de visualisation de la couche. Les échelles peuvent être définies via les boutons [Actuelle]
Sous-ensemble de la couche
Le bouton [Constructeur de requête] permet de définir un sous-ensemble de la couche qui sera visualisé en lieu et place de la couche complète (référez-vous également à la section Sauvegarder la sélection dans une nouvelle couche).
Figure General 1:
In QGIS 2.0 there is now an own menu for the map tips. It includes a new feature:
Map Tip display text in HTML. While you can still choose a
Field
to be displayed when hovering over a feature on the map it is now possible to insert HTML code that creates a complex
display when hovering over a feature. To activate Map Tips, select the menu option View ‣ MapTips.Figure Display 1 shows an example of HTML code.
Figure Display 1:
Figure Display 2:
QGIS est capable d’effectuer des actions basées sur les attributs d’une entité. Il peut s’agir de nombreuses actions, par exemple exécuter un programme avec des arguments construits à partir des attributs d’une entité, ou encore, passer des paramètres à un outil de publication de rapports sur internet.
Figure Actions 1:
Les actions sont utiles si vous voulez exécuter fréquemment une application externe ou charger une page web basée sur une ou plusieurs valeurs de votre couche vecteur. Il en existe 6 types qui peuvent être utilisés de la sorte :
Les actions Générique, Mac, Windows et Unix lancent un processus externe,
Les actions Python lancent un code python,
Les actions Générique et Python sont disponibles quel que soit le système d’exploitation,
Les actions Mac, Windows et Unix sont disponibles uniquement depuis les systèmes d’exploitation correspondants (c’est à dire que vous pouvez définir trois actions ‘Éditer’ qui ouvrent un éditeur et les utilisateurs ne verront que l’action correspondant à leur système d’exploitation).
Quelques exemples d’actions sont fournis. Vous pouvez les charger en cliquant sur [Ajouter les actions par défaut]. Un des exemples effectue une recherche basée sur la valeur d’un attribut. C’est ce qui est développé par la suite.
Définir des actions
Les actions sur les attributs sont définies depuis la fenêtre Propriétés de la couche vecteur. Pour définir une action, ouvrez la fenêtre Propriétés de la couche vecteur et cliquez sur le menu Actions. Allez à Propriétés de l’action. Sélectionner le type ‘Générique’ et fournissez un nom d’identification à l’action. Le texte de l’action doit lui-même contenir le nom de l’application qui sera exécutée lorsque l’action est invoquée. Vous pouvez ajouter un ou plusieurs champs en arguments pour l’application. Lorsque l’action est invoquée, tout jeu de caractères commençant par % suivi d’un champ sera remplacé par la valeur de ce champ. Les caractères spéciaux %% sont remplacés par la valeur du champ sélectionné dans la fenêtre Identifier les résultats ou dans la Table attributaire ( voir using_actions ci-après). Les guillemets double peuvent être utilisés pour regrouper le texte dans un argument unique pour l’application, le script ou le programme. Ils sont ignorés lorsque précédés d’un backslash.
Si vous avez des noms de champs qui sont contenus dans d’autres noms de champs (par exemple, col1 et col10), vous devez l’indiquer en entourant le nom de champ (le caractère %) par des crochets (par exemple [%col10]). Ceci évitera de prendre le nom de champ %col10 pour %col1 avec un 0 à la fin. Les crochets seront retirés quand QGIS substituera le nom par la valeur du champ. Si vous voulez que le champ à substituer soit entouré de crochets, utilisez un deuxième jeu de crochets comme ici : [[%col10]].
En utilisant l’outil Identifier les entités, vous ouvrez la fenêtre Résultats identifiés. Elle inclut une entrée (Dérivé) qui contient des informations pertinentes selon le type de couche. Les valeurs de cette entrée sont accessibles de la même manière que les autres champs en ajoutant (Derived). avant le nom du champ. Par exemple, une couche de points a un champ X et Y et leur valeur peut être utilisée dans l’action avec %(Derived).X et %(Derived).Y. Les attributs dérivés sont disponibles uniquement depuis la fenêtre Résultats identifiés et pas la Table d’attributs.
Deux exemples d’action sont proposés ci-dessous :
Dans le premier exemple, le navigateur internet konqueror est lancé avec une URL. L’URL effectue une recherche Google sur la valeur du champ nam de la couche vecteur. Notez que l’application ou le script appelé par l’action doit être dans le path sinon vous devez fournir le chemin complet vers l’application. Pour être certain, nous pouvons réécrire le premier exemple de cette manière : /opt/kde3/bin/konqueror http://www.google.com/search?q=%nam. Ceci assurera que l’application konqueror sera exécutée quand l’action sera invoquée.
Le deuxième exemple utilise la notation %% dont la valeur ne dépend pas d’un champ en particulier. Quand l’action est invoquée, %% sera remplacé par la valeur du champ sélectionné dans les résultats de l’identification ou dans la table d’attributs.
Utiliser les actions
Les actions se lancent depuis la fenêtre Résultats identifiés, depuis la Table d’attributs ou depuis Exécuter l’action de l’entité (rappelez-vous que ces fenêtres s’ouvrent en cliquant sur Identifier les entités,
Ouvrir la table d’attributs ou
Exécuter l’action de l’entité). Pour lancer une action, faites un clic droit sur un enregistrement et choisissez l’action depuis le menu qui apparaît. Les actions sont listées dans le menu par le nom que vous leur avez donné en les définissant. Cliquez ensuite sur l’action que vous souhaitez lancer.
Si vous faites appel à une action qui utilise la notation %%, faites un clic droit sur la valeur du champ que vous souhaitez passer à l’application ou au script, dans la fenêtre Identifier les résultats ou dans la Table attributaire.
Voici un autre exemple qui récupère des données d’une couche vecteur et qui les insère dans un fichier utilisant bash et la commande echo (cela ne marchera que sur et peut-être
). La couche en question a des champs pour le nom d’espèce taxon_name, la latitude lat et la longitude long. Je souhaiterais faire une sélection spatiale de localisations et exporter les valeurs des enregistrements sélectionnés dans un fichier texte (ils apparaissent en jaune sur la carte dans QGIS). Voici l’action qui permettra de le faire :
bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt"
Après avoir sélectionné quelques localités et lancé l’action sur chacune, le fichier de destination ressemblera à ça :
Acacia mearnsii -34.0800000000 150.0800000000
Acacia mearnsii -34.9000000000 150.1200000000
Acacia mearnsii -35.2200000000 149.9300000000
Acacia mearnsii -32.2700000000 150.4100000000
Comme exercice, nous allons créer une action qui réalise une recherche Google sur la couche lakes. Tout d’abord, nous avons besoin de déterminer l’URL nécessaire pour effectuer une recherche sur un mot clé. Il suffit simplement d’aller sur Google et faire une recherche simple puis récupérer l’URL dans la barre d’adresse de votre navigateur. De cela, nous en déduisons la formulation : http://google.com/search?q=qgis, où qgis est le terme recherché. À partir de tout cela, nous pouvons poursuivre :
Assurez-vous que la couche lakes est chargée.
Ouvrez la fenêtre Propriétés de la couche en double cliquant sur la couche dans la légende ou en faisant un clic droit et en choisissant Propriétés dans le menu qui apparaît.
Cliquez sur l’onglet Actions
Entrez un nom pour l’action, par exemple Recherche Google.
Pour l’action, nous devons fournir le nom du programme externe à lancer. Dans ce cas, nous allons utiliser Firefox. Si le programme n’est pas dans votre path, vous devez fournir le chemin complet.
A la suite du nom de l’application externe, ajoutez l’URL utilisée pour faire la recherche Google, jusqu’au terme de recherche, mais sans l’ajouter : http://google.com/search?q=
Le texte dans le champ Action devrait ressembler à ça : firefox http://google.com/search?q=
Cliquez sur le menu déroulant contenant les noms des champs pour la couche lakes. Il est situé juste à gauche du bouton [Insérer un champ].
Sélectionnez le champ ‘NAMES’ du menu déroulant et cliquez sur [Insérer un champ].
Votre texte Action ressemble maintenant à :
firefox http://google.com/search?q=%NAMES
Pour finaliser l’action, cliquez sur le bouton [Ajouter l’action à la liste].
L’action est donc entièrement définie et prête à être utilisée. Le texte final de l’action devrait correspondre à ça :
firefox http://google.com/search?q=%NAMES
Nous pouvons maintenant utiliser l’action. Fermez la fenêtre Propriétés de la couche et zoomez sur une zone d’intérêt. Assurez-vous que la couche lakes est active puis identifiez un lac. Dans la fenêtre de résultats, vous constatez que notre action est maintenant visible :
Figure Actions 2:
Quand vous cliquez sur l’action, cela ouvre Firefox et charge l’URL http://www.google.com/search?q=Tustumena. Il est également possible d’ajouter d’autres champs attributs à l’action. Pour faire cela, vous pouvez ajouter un + à la fin du texte de l’action, sélectionnez un autre champ et cliquez sur [Insérer un champ]. Dans cet exemple, la recherche sur un autre champ n’aurait pas de sens.
Vous pouvez définir de multiples actions pour une couche et chacune apparaitra dans la fenêtre Résultats identifiés.
Vous pouvez imaginer toute sorte d’utilisations pour ces actions. Par exemple, si vous avez une couche de points contenant la localisation d’images ou de photos ainsi qu’un nom de fichier, vous pouvez créer une action qui lancera un visualiseur pour afficher les images. Vous pouvez également utiliser les actions pour lancer des rapports sur internet pour un champ attributaire ou une combinaison de champs, en les spécifiant de la même manière que dans l’exemple d’une recherche Google.
Nous pouvons également fournir des exemples plus complexes, notamment sur la manière d’utiliser des actions Python.
D’ordinaire lorsque l’on crée une action pour ouvrir un fichier avec une application externe, on peut utiliser un chemin absolu ou relatif. Dans ce dernier cas, le chemin dépend donc de l’emplacement du fichier d’exécution du programme externe. Mais si nous souhaitons utiliser des chemins relatifs à la couche sélectionnée (stockée sous forme de fichier comme un shapefile ou une base spatialite) ? Le code suivant permet de le faire :
command = "firefox";
imagerelpath = "images_test/test_image.jpg";
layer = qgis.utils.iface.activeLayer();
import os.path;
layerpath = layer.source() if layer.providerType() == 'ogr' \
else (qgis.core.QgsDataSourceURI(layer.source()).database() \
if layer.providerType() == 'spatialite' else None);
path = os.path.dirname(str(layerpath));
image = os.path.join(path,imagerelpath);
import subprocess;
subprocess.Popen( [command, image ] );
Il faut simplement se rappeler qu’il s’agit d’une action Python et qu’il faut modifier les variables command et imagerelpath selon vos besoins.
Et si le chemin relatif doit dépendre du fichier de projet (sauvegardé) ? Le code de l’action Python deviendra :
command="firefox";
imagerelpath="images/test_image.jpg";
projectpath=qgis.core.QgsProject.instance().fileName();
import os.path; path=os.path.dirname(str(projectpath)) if projectpath != '' else None;
image=os.path.join(path, imagerelpath);
import subprocess;
subprocess.Popen( [command, image ] );
Un autre exemple d’action Python consiste à ajouter de nouvelles couche au projet. L’exemple qui suit montre comment ajouter une couche vecteur et un raster. Les noms des fichiers à ajouter au projet et les noms à donner aux couches dépendent de données attributaires (filename et layname sont deux champs de la table attributaire de la couche sur laquelle l’action est créée) :
qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp','[% "layername" %]',\
'ogr')
Pour ajouter un raster (ici une image tif), cela devient :
qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif','[% "layername" %]')
L’onglet Jointures permet de joindre une table attributaire chargée à une couche vecteur chargée. Après avoir cliqué sur le bouton
, la fenêtre Ajouter une jointure vectorielle apparaît. Vous devez définir une couche de jointure à connecter à la couche cible, un champ de jointure qui correspond à un champ de la table à joindre et un champ cible provenant de la table attributaire de la couche cible. Il en résulte que tout les champs de la table à joindre seront affichés en plus des champs de la table cible.
Actuellement, QGIS gère les jointures de tables non spatiales aux formats pris en charge par OGR (par exemple CSV, DBF, Excel), au format texte délimité et issues de PostgreSQL (voir figure_joins_1).
Figure Joins 1:
De plus, la fenêtre de jointure permet de :
L’onglet Diagrammes permet d’ajouter une couche de graphiques sur une couche vecteur (voir figure_diagrams_1).
Cet onglet permet de générer des diagrammes circulaires, textes et des histogrammes.
L’onglet est subdivisé en quatre sous-onglets : Apparence, Taille, Postion et Options.
In the case of the text diagram and piechart text values of different data columns are displayed one below the other with a circle or a box and dividers. In the Size tab diagram size is based on a fixed size or on linear scaling according to a classification attribute. The placement of the diagrams which is done in the Position tab interacts with the new labeling, so position conflicts between diagrams and labels are detected and solved. In addition to chart positions can be fixed by the users hand.
Figure Diagrams 1:
Nous allons vous montrer un exemple en superposant dans les frontières de l’Alaska des données concernant la température issues d’une couche vecteur portant sur le climat. Toutes ces couches sont disponibles dans l’échantillon de données QGIS (voir Section Échantillon de données).
Cliquez sur l’icône Ajouter une couche vecteur, parcourez le répertoire de l’échantillon QGIS et chargez les couches alaska.shp et climate.shp.
Double-cliquez sur la couche climate dans la légende pour ouvrir la fenêtre de Propriétés de la Couche.
Cliquez sur l’onglet Diagrammes, activez la case Afficher les diagrammes et choisissez ‘Diagramme texte dans la liste déroulante |selectstring|`Type de diagramme`.
Dans l’onglet Apparence, nous choisissons le bleu clair comme couleur de fond et définissons une taille fixe de 18 mm dans l’onglet Taille.
Dans l’onglet Position, l’emplacement défini est Autour du point.
Sur le diagramme, nous souhaiterions afficher les valeurs de trois colonnes T_F_JAN`, T_F_JUL et T_F_MEAN. D’abord, sélectionnez T_F_JAN de la colonne Attributs et cliquez sur le bouton puis T_F_JUL et enfin T_F_MEAN.
Cliquez maintenant sur [Appliquer] pour afficher les diagrammes sur la carte.
Vous pouvez maintenant adapter la taille du graphique dans l’onglet Taille. Décochez Taille Fixe et définissez la taille des diagrammes en fonction d’un attribut avec le bouton [trouver la valeur maximale] et le menu Taille. Si les diagrammes apparaissent trop petits à l’écran, vous pouvez cocher la case
Augmenter la taille des petits diagrammes et définir la Taille Minimale des diagrammes.
Changez les couleurs des attributs en double-cliquant sur les rectangles colorées dans le champ Attributs utilisés. Figure_diagrams_2 donne un aperçu.
Et pour finir cliquez sur [OK].
Figure Diagrams 2:
N’oubliez pas que dans l’onglet Position, en cochant la case Source de définition de la position, vous pouvez utiliser des valeurs d’attributs pour choisir l’emplacement des diagrammes. Par ailleurs, dans l’onglet Apparence, vous pouvez définir la visibilité en fonction de l’échelle.
Le menu Métadonnées comprend les sections Description, Attribution, MetadataURL et Propriétés.
Dans la section Propriétés, vous trouverez des informations sur la couche notamment le type de stockage, la source, le nombre d’entités, le type d’entités et les possibilités d’édition. La partie Emprise fournit des informations sur l’emprise de la couche et Système spatial de référence de la couche vous fournit les informations sur le SCR de la couche. Ce menu offre ainsi un moyen rapide pour récupérer des informations globales sur la couche.
En complément, vous pouvez ajouter/éditer un titre pour la couche ainsi que d’autres informations comme un résumé dans Description. Il est aussi possible de définir ici une Liste de mots-clés. Ces listes de mots-clés peuvent être utilisées dans un catalogue de métadonnées. Si vous souhaitez utiliser un titre depuis un fichier XML de métadonnées, vous devez renseigner un lien dans le champ DataUrl. Utilisez Attribution pour récupérer les données d’attributs depuis un catalogue de métadonnées XML. Dans le champ MetadataUrl, vous pouvez définir le chemin général d’accès au catalogue de métadonnées. Ces informations seront stockées dans le fichier de projet QGIS pour les sessions suivantes et seront utilisées par QGIS server.
Figure Metadata 1: