SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
TUTO
QGIS
2.X Créez vos propres plugins dans QGIS
2
3
AVANT-PROPOS _____________________________________________________________ 4
1. AVANT DE COMMENCER___________________________________________________ 4
1.1 Avertissement _______________________________________________________________________ 4
1.2 Description du plugin _________________________________________________________________ 4
1.3 Les outils indispensables_______________________________________________________________ 6
1.4 Les données de l’exemple______________________________________________________________ 7
1.5 Pré - requis__________________________________________________________________________ 7
2. PROCEDURE DE CREATION D’UN PLUGIN ______________________________________ 8
2.1 Développement de l’interface graphique _________________________________________________ 8
2.2 Ecriture du code python du plugin ______________________________________________________ 17
CONCLUSION ______________________________________________________________ 21
ANNEXES _________________________________________________________________ 22
Tableau des coordonnées____________________________________________________________________ 22
POUR ALLER PLUS LOIN ______________________________________________________ 23
4
AVANT-PROPOS
Les plugins sont un excellent moyen d'étendre les fonctionnalités de QGIS et pour
automatiser les traitements cartographiques. Vous pouvez écrire des plugins à
l'aide du langage Python qui peut aller de l’affichage d’un simple texte au
développement d’une interface permettant de réaliser des traitements complexes.
Ce tutoriel décrira pour vous le processus de développement des plugins partant
de la configuration de votre environnement de développement, la conception de
l'interface utilisateur et l’écriture du code python pour interagir avec QGIS.
1. AVANT DE COMMENCER
1.1 Avertissement
Vous êtes libre de faire circuler ce guide à toute personne souhaitant développer
ses propres plugins. Les codes et les algorithmes de développement ne sont
optimisés volontairement car le souhait de l’auteur était de faire simple, court et
utile pour favoriser une meilleure compréhension.
1.2 Description du plugin
Dans ce tutoriel nous allons réaliser un plugin QGIS qui permet de créer des
polygones automatiquement connaissant les coordonnées des sommets. Cet outil
peut être intéressant lorsque vous avez à créer régulièrement dans le cadre de vos
tâches quotidiennes, un grand nombre de polygones.
5
Figure 1:Vue QGIS illustrant le problème à résoudre
6
Notre but sera d’écrire un plugin qui permettra de créer des polygones ayant la même
étiquette.
1.3 Les outils indispensables
Pour pouvoir développer vos plugins avec python et QGIS, vous devez installer sur
votre ordinateur les outils suivants :
1.3.1 QGIS
C’est évident. Cependant compte tenu de nombreuses versions QGIS, nous
recommandons une version supérieure à la version 2.6. Vous pouvez télécharger la
dernière version 2.x (n’utilisez pas la version 3.0 pour suivre exécuter le code de
tutoriel) depuis le site du projet : https://www.qgis.org/fr/site/
1.3.2 Python
Lors de l’installation de QGIS, une version de python sera également installée par
défaut. Dans le cas contraire vous pouvez installer depuis le site de Python, la
version qui correspond à votre installation de QGIS ;
https://www.python.org/
1.3.3 Qt Designer
Qt Designer est l'outil Qt pour la conception et la construction d'interfaces
utilisateur graphiques (GUI) avec Qt Widgets. Vous pouvez composer et
personnaliser vos fenêtres ou vos boîtes de dialogues selon le concept WYSIWYG
(Ce que vous voyez, c’est ce que vous obtenez).
7
1.3.4 Plugin Builder
Plugin Builder crée tous les fichiers nécessaires et le code de référence pour un
plugin. Pour installer Plugin Builder, rendez – vous dans le gestionnaires extensions.
Trouvez et installez Plugin Builder depuis le gestionnaire des extensions qgis.
1.3.5 Plugins Reloader
Il s'agit d'un autre plugin auxiliaire qui permet le développement itératif de
plugins. À l'aide de ce plugin, vous pouvez modifier le code de votre plugin et
l'afficher dans QGIS sans devoir redémarrer QGIS à chaque fois. Trouvez et
installez le plugin « Plugin Reloader ».
1.4 Les données de l’exemple
Vous trouverez en annexe le tableau de coordonnées des sommets des polygones
utilisés. Il vous appartiendra de créer une couche avec des points dans ce tableau.
1.5 Pré - requis
Il est nécessaire d’avoir des notions de QGIS et des bases de la syntaxe python
pour suivre avantageusement ce tutoriel.
8
2. PROCEDURE DE CREATION D’UN PLUGIN
Le processus de création d’un plugin, tel qu’il sera présenté dans ce document est
divisé en deux étapes :
 La première étape consiste à créer l’interface graphique du
plugin ;
 La seconde étape consistera à écrire le code python qui réalise
l’objet du plugin ;
2.1 Développement de l’interface graphique
La création de l’interface graphique du plugin se fait grâce aux outils Plugin builder
et Qt Designer.
1. Commencez par lancer le plugin « Plugin Builder » : ExtensionPlugin builder ;
2. Une boîte de dialogue s’ouvre avec plusieurs formulaires accessibles via le
bouton suivant. Remplissez les champs de chaque formulaire.
Figure 2:Fenêtre Plugin Builder
9
Tableau 1 : Description des champs des formulaires Plugin builder
CHAMP EXEMPLE DESCRIPTION
Class name PolygonAuto
Nom qui sera utilisé dans le code python pour définir la classe
principale de l’application
Plugin Name Polygon_Automatique
Il s’agit du titre de votre plugin. Il doit être explicite puisqu’il
sera affiché.
Description
Ce plugin permet de créer
des polygones
Il s’agit de la description de notre plugin. Elle doit être très
courte
Version number 1.0
Il s’agit de la version de votre plugin
Minimum Qgis
version
2.0
Il s’agit de la version de QGIS minimum qui pourra exécuter ce
le plugin
Author
/Company
Gildas / STT-GIS
Nom de l’auteur
Email address gildas@stt-gis.net
Adresse email de l’auteur
Bug tracker
Adresse vers un site répertoriant les bugs de l’application
(lorsque votre plugin est publié)
Home page
Page web de votre plugin
Repository
Adresse vers le répertoire de votre plugin (lorsque votre plugin
est publié)
Tags
Les tags sont une liste de mots-clés séparés par des virgules
décrivant la (les) fonction (s) de votre plugin.
Experimental
Cochez cette case si votre plugin est considéré comme
expérimental
3. Dans la suite, vous serez invité à choisir un répertoire pour votre plugin. Il
s’agit d’un emplacement réservé qui se trouve dans le dossier .qgis2 qui se
trouve dans votre répertoire personnel. L'emplacement de ce dossier dépend
du système d’exploitation :
 Windows : c:Usersusername.qgis2pythonplugins
 Mac : /Users/username/.qgis2/python/plugins
 Linux : /home/username/.qgis2/python/plugins
10
4. Naviguez jusque dans le dossier de votre plugin :
Plugin Builder a créé pour vous un ensemble de fichier. Ne vous inquiétez pas, seuls
quelques fichiers vont nous intéresser dans le cadre de ce tutoriel :
Tableau 2 : Description des fichiers crées par Plugin Builder
Fichiers Description
PolygonAuto.py C’est le fichier principal de notre plugin. Il contient la classe
principale du plugin qui donne les emplacements où doivent être
implantés les boutons et barres d'outils dans QGIS.
PolygonAuto_dialog_base.ui Il s’agit du dessin graphique de notre plugin
resources.qrc C’est le fichier qui fait le lien avec les ressources (fichiers,
icone, images..) utilisées dans notre plugin.
icon.png Il s’agit de l’icône de notre plugin. Plugin Builder créer un par
défaut, mais il est recommandé d’utiliser votre propre icône.
11
5. Ne quittez pas le dossier de votre plugin. Remplacez l’icône par défaut par une
icône personnelle de 24*24 pixels en png comme par exemple :
6. Avant de pouvoir utiliser le plugin, nous devons compiler le fichier
resources.qrc contenu dans le dossier du plugin. Pour cela lancez OSGeo4W
Shell sur Windows ou un terminal sur Mac ou Linux.
Figure 3:Fenêtre OSGeo4W Shell
7. A l’aide de la commande DOS cd, rendez – vous dans le répertoire de votre
plugin :
cd c:Usersxxxxxx.qgis2pythonpluginsPolygonAuto
8. Dès que vous êtes dans le répertoire, exécuter la commande :
9. Maintenant, nous pouvons visualiser notre plugin. Fermez QGIS et lancez-le à
nouveau.
12
10. Depuis le menu Extension [Gérer et installer les plugins], activez le
PolygoneAuto dans l'onglet Installé.
Figure 4 : Activation du Plugin
11. Vous remarquerez qu'il y a une nouvelle icône dans la barre d'outils et une
nouvelle entrée de menu Extension.
Figure 5: Aperçu nouvelle extension
13
12. S vous cliquez sur l’outil, vous devez voir apparaître une fenêtre qui
ressemble à la fenêtre ci – dessous :
Figure 6:Fenêtre initiale du plugin
13. Nous allons maintenant personnaliser l’interface graphique de notre plugin.
C’est là qu’intervient l’outil Qt Designer. Lancez Qt Designer. Une fenêtre
s’ouvre, cliquez sur le bouton [ouvrir] :
14. Dans la fenêtre parcourir, rendez – vous dans le dossier de votre plugin et
sélectionnez le fichier PolygonAuto_dialog_base.ui.
Figure 7 : Ouverture de Qt Designer
14
15. L’interface de Qt est très intuitive, elle ne requiert pas qu’on s’y attarde. On peut distinguer 4 parties essentielles :
15
1. La barre de menu contient les fonctionnalités classiques et des outils
qui permettent de gérer l’affichage et les évènements ;
2. Ce bandeau vous donne la possibilité de sélectionner un widget à placer
sur la fenêtre principale ;
3. Au centre de Qt Designer, vous avez la fenêtre que vous êtes en train
de dessiner. Pour le moment celle-ci possède deux boutons.
4. lorsqu'un widget est sélectionné sur la fenêtre principale, vous pouvez
éditer ses propriétés. Vous noterez que les widgets possèdent en
général beaucoup de propriétés, et que celles-ci sont organisées en
fonction de la classe dans laquelle elles ont été définies. On peut ainsi
modifier toutes les propriétés dont un widget hérite, en plus des
propriétés qui lui sont propres.
16. Réorganisez votre fenêtre de façon à obtenir quelque chose comme ceci :
Figure 8:Interface du plugin revue
Pour l’instant, laisser les propriétés par défaut en dehors de la propriété text :
Figure 9: Fenêtre propriété
16
17. Quand vous avez fini, retournez dans QGIS pour voir les modifications.
Lancez le plugin « Plugin Reloader » et sélectionnez le plugin à recharger :
Figure 10:Plugin reloader
18. Lancez maintenant votre plugin :
Figure 11:Plugin redessiné
19. Vous devez constater la liste déroulante est vide et que si vous cliquez sur
le bouton [lancer la création] vous n’aurez aucune action. Ce qui est normal
puisque il n’y a pas de code associé ni à la liste déroulante, ni au bouton [Lancer
la création].
Nous avons fini avec la première partie du développement de notre plugin.
17
2.2 Ecriture du code python du plugin
Pour écrire le code de votre plugin, rendez- vous dans le répertoire du plugin et
ouvrez grâce à un éditeur de code le fichier PolygonAuto.py qui comprend la classe
principale de votre plugin. Dans ce fichier vous trouvez plusieurs fonctions
reconnaissables par le mot clé def. Les seules fonctions qui vont nous intéresser
sont les suivantes :
 __init__ : qui donne accès à l’interface de QGIS ;
 initGui () : qui initialise l’interface utilisateur de l’application ;
 unload () : qui est appelée lorsque l’extension est déchargée ;
 Run () : qui est appelée lorsque l’utilisateur clique sur le plugin ;
2.2.1 Import des modules et fonctions importantes :
Commençons par ajouter un autre module important pour ce que nous volons faire.
En dessous de ces lignes :
Rajoutez :
Il s’agit d’importer ici toutes les classes et méthodes nécessaires pour les
manipulations cartographiques avec QGIS comme créer ou charger un fichier.
2.2.2 Code pour la liste déroulante
Nous volons ajouter la liste des couches chargées dans Qgis au démarrage de
l’application dans la liste déroulante. Nous devons donc ajouter notre code dans la
fonction run (self). Repérez cette fonction et saisissez le code suivant :
18
20. De retour dans QGIS, ajouter deux ou trois couches.
21. Après avoir rafraichi le plugin grâce à plugin reloader, lancez le plugin.
Figure 12:Couche chargée dans le plugin
Si tout s’est bien passé, vous devez avoir liste des couches chargées dans la liste
déroulante.
2.2.3 Code pour le bouton [Lancer la création]
22. Maintenant nous allons créer une fonction qui permet de réaliser l’objet de
notre script. Au-dessus de la fonction run (self), créez une fonction
creer_polygone.
19
20
23. Lions le bouton [lancer la création] à la fonction [créer_polygone] de sorte
que lorsque le bouton est cliqué, la fonction s’exécute.
 Repérez l’instruction :
 Ajoutez en dessous le code suivant :
Cette instruction permet de connecter le bouton à la fonction creer_polygon.
24. Récupérez le tableau des coordonnées en annexe pour créer dans QGIS
une couche point. Cela peut se faire en créant un fichier csv à partir du tableau
que vous ajouterez dans QGIS en tant que couche de texte délimité.
25. De retour dans QGIS, rechargez le plugin avec Plugin loader et lancez le
plugin. Sélectionnez la couche contenant les sommets des polygones puis lancer
la création des polygones.
Figure 13:Exemple de création des polygones
21
CONCLUSION
Le plugin créé est loin d’être optimal. Nous avons tout simplement voulu montrer le
processus de création. Il vous appartient maintenant de l’améliorer.
22
ANNEXES
Tableau des coordonnées
POLYGONE X Y
Polygone1 -1.41685 47.94181
Polygone1 -1.41653 47.9418
Polygone1 -1.41667 47.9416
Polygone1 -1.41678 47.94142
Polygone1 -1.41704 47.94163
Polygone2 -1.41593 47.94207
Polygone2 -1.41568 47.94203
Polygone2 -1.41575 47.94181
Polygone2 -1.41599 47.94181
Polygone2 -1.41617 47.94195
Polygone3 -1.41451 47.94182
Polygone3 -1.41431 47.9418
Polygone3 -1.41438 47.94168
Polygone3 -1.41445 47.94163
Polygone3 -1.41454 47.94156
Polygone3 -1.41462 47.94144
Polygone3 -1.41473 47.94159
Polygone3 -1.41487 47.94168
Polygone4 -1.41604 47.94167
Polygone4 -1.41581 47.94154
Polygone4 -1.41593 47.9413
Polygone4 -1.41617 47.94139
Polygone4 -1.41626 47.94156
Polygone5 -1.41542 47.9417
Polygone5 -1.41514 47.9417
Polygone5 -1.41521 47.94155
Polygone5 -1.41512 47.94139
Polygone5 -1.41536 47.94134
Polygone5 -1.41552 47.94151
Polygone6 -1.41517 47.94211
Polygone6 -1.41545 47.94213
Polygone6 -1.4153 47.94222
Polygone6 -1.41504 47.94223
Polygone6 -1.41497 47.94217
Polygone6 -1.41479 47.94207
Polygone6 -1.41496 47.94205
Polygone6 -1.41498 47.94198
Polygone6 -1.41507 47.94188
Polygone6 -1.41522 47.94189
23
POLYGONE X Y
Polygone6 -1.4153 47.94199
Polygone7 -1.41631 47.94099
Polygone7 -1.41628 47.94121
Polygone7 -1.41603 47.94115
Polygone7 -1.41604 47.94099
Polygone7 -1.41587 47.94086
Polygone7 -1.41617 47.94083
Polygone7 -1.41632 47.9409
Polygone8 -1.41538 47.94107
Polygone8 -1.41489 47.94121
Polygone8 -1.4148 47.94106
Polygone8 -1.4149 47.94097
Polygone8 -1.41482 47.94083
Polygone8 -1.41485 47.94068
Polygone8 -1.41513 47.94069
Polygone8 -1.41533 47.94078
Polygone8 -1.41548 47.9409
Polygone9 -1.4144 47.94124
Polygone9 -1.41402 47.94122
Polygone9 -1.41402 47.94078
Polygone9 -1.41438 47.94075
Polygone10 -1.41719 47.94118
Polygone10 -1.41671 47.94133
Polygone10 -1.41686 47.94109
Polygone10 -1.41682 47.94076
Polygone10 -1.4173 47.94095
Polygone11 -1.41421 47.94169
Polygone11 -1.41398 47.94185
Polygone11 -1.41374 47.94155
Polygone11 -1.41383 47.94134
Polygone11 -1.41422 47.94137
POUR ALLER PLUS LOIN
Si vous voulez aller plus loin dans la création des plugins, vous pouvez consulter :
 L’indispensable livre des recettes QGIS :
http://urlz.fr/5nsT
 Le livre Automatiser dans QGIS en utilisant Python :
http://urlz.fr/5nsp

Contenu connexe

Tendances

cour de compilation
cour de compilation cour de compilation
cour de compilation Ens Kouba
 
Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-AgentsTomohiro Namba
 
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)Yuki Tamura
 
Paradigmes de Programmation
Paradigmes de ProgrammationParadigmes de Programmation
Paradigmes de Programmationmahfoudsam
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'imagesAbdelouahed Abdou
 
[DL輪読会]Tracking Objects as Points
[DL輪読会]Tracking Objects as Points[DL輪読会]Tracking Objects as Points
[DL輪読会]Tracking Objects as PointsDeep Learning JP
 
Regression lineaire simple
Regression lineaire simpleRegression lineaire simple
Regression lineaire simpleMehdi Rajawi
 
Présentation ameni.pptx
Présentation ameni.pptxPrésentation ameni.pptx
Présentation ameni.pptxHoussemBoutriga
 
Développement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médicalDéveloppement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médicallitayem bechir
 
Rapport jeu en JAVA
Rapport jeu en JAVARapport jeu en JAVA
Rapport jeu en JAVAAhmed WAFDI
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaireBoris Guarisma
 
presentation_PFE.pptx
presentation_PFE.pptxpresentation_PFE.pptx
presentation_PFE.pptxFazaFoudhaili
 
Rapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleRapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleCibamboSteven
 
Présentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatiquePrésentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatiqueIsmail BAKKALI
 
Cheat sheet régression linéaire simple Sous R
Cheat sheet régression linéaire simple Sous RCheat sheet régression linéaire simple Sous R
Cheat sheet régression linéaire simple Sous RMohamed Ali KHOUAJA
 
Initiation photoshop partie1
Initiation photoshop partie1Initiation photoshop partie1
Initiation photoshop partie1OneIDlille
 
Juliaで前処理
Juliaで前処理Juliaで前処理
Juliaで前処理weda654
 
Développement d'application avec App Inventor
Développement d'application avec App InventorDéveloppement d'application avec App Inventor
Développement d'application avec App InventorLaurent Moccozet
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesHosni Mansour
 

Tendances (20)

cour de compilation
cour de compilation cour de compilation
cour de compilation
 
Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-Agents
 
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
失敗から学ぶゲーム開発(ドラゴンジェネシス〜聖戦の絆〜の場合)
 
Paradigmes de Programmation
Paradigmes de ProgrammationParadigmes de Programmation
Paradigmes de Programmation
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
[DL輪読会]Tracking Objects as Points
[DL輪読会]Tracking Objects as Points[DL輪読会]Tracking Objects as Points
[DL輪読会]Tracking Objects as Points
 
Regression lineaire simple
Regression lineaire simpleRegression lineaire simple
Regression lineaire simple
 
Présentation ameni.pptx
Présentation ameni.pptxPrésentation ameni.pptx
Présentation ameni.pptx
 
Développement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médicalDéveloppement d’une application Web et mobile d’un annuaire médical
Développement d’une application Web et mobile d’un annuaire médical
 
Rapport jeu en JAVA
Rapport jeu en JAVARapport jeu en JAVA
Rapport jeu en JAVA
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
 
presentation_PFE.pptx
presentation_PFE.pptxpresentation_PFE.pptx
presentation_PFE.pptx
 
Rapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche OpérationnelleRapport Mini-Projet Recherche Opérationnelle
Rapport Mini-Projet Recherche Opérationnelle
 
Présentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatiquePrésentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatique
 
Cheat sheet régression linéaire simple Sous R
Cheat sheet régression linéaire simple Sous RCheat sheet régression linéaire simple Sous R
Cheat sheet régression linéaire simple Sous R
 
Initiation photoshop partie1
Initiation photoshop partie1Initiation photoshop partie1
Initiation photoshop partie1
 
Juliaで前処理
Juliaで前処理Juliaで前処理
Juliaで前処理
 
Développement d'application avec App Inventor
Développement d'application avec App InventorDéveloppement d'application avec App Inventor
Développement d'application avec App Inventor
 
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humaines
 

Similaire à Créez vos propres plugins qgis

Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsThierry Gayet
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsAddi Ait-Mlouk
 
Présentation et installation de pentaho
Présentation et installation de pentahoPrésentation et installation de pentaho
Présentation et installation de pentahoSylvain Decloix
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)MOHAMMED MOURADI
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de JhipsterKokou Gaglo
 
Héberger vos applications web grâce à openshift cloud
Héberger vos applications web grâce à openshift cloudHéberger vos applications web grâce à openshift cloud
Héberger vos applications web grâce à openshift cloudNassim Bahri
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Christian Charreyre
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015FactoVia
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxZakariyaa AIT ELMOUDEN
 

Similaire à Créez vos propres plugins qgis (20)

Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
 
Présentation et installation de pentaho
Présentation et installation de pentahoPrésentation et installation de pentaho
Présentation et installation de pentaho
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)
 
Tuto bada
Tuto badaTuto bada
Tuto bada
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de Jhipster
 
Chap android
Chap androidChap android
Chap android
 
Héberger vos applications web grâce à openshift cloud
Héberger vos applications web grâce à openshift cloudHéberger vos applications web grâce à openshift cloud
Héberger vos applications web grâce à openshift cloud
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 

Dernier

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 

Dernier (20)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 

Créez vos propres plugins qgis

  • 1. TUTO QGIS 2.X Créez vos propres plugins dans QGIS
  • 2. 2
  • 3. 3 AVANT-PROPOS _____________________________________________________________ 4 1. AVANT DE COMMENCER___________________________________________________ 4 1.1 Avertissement _______________________________________________________________________ 4 1.2 Description du plugin _________________________________________________________________ 4 1.3 Les outils indispensables_______________________________________________________________ 6 1.4 Les données de l’exemple______________________________________________________________ 7 1.5 Pré - requis__________________________________________________________________________ 7 2. PROCEDURE DE CREATION D’UN PLUGIN ______________________________________ 8 2.1 Développement de l’interface graphique _________________________________________________ 8 2.2 Ecriture du code python du plugin ______________________________________________________ 17 CONCLUSION ______________________________________________________________ 21 ANNEXES _________________________________________________________________ 22 Tableau des coordonnées____________________________________________________________________ 22 POUR ALLER PLUS LOIN ______________________________________________________ 23
  • 4. 4 AVANT-PROPOS Les plugins sont un excellent moyen d'étendre les fonctionnalités de QGIS et pour automatiser les traitements cartographiques. Vous pouvez écrire des plugins à l'aide du langage Python qui peut aller de l’affichage d’un simple texte au développement d’une interface permettant de réaliser des traitements complexes. Ce tutoriel décrira pour vous le processus de développement des plugins partant de la configuration de votre environnement de développement, la conception de l'interface utilisateur et l’écriture du code python pour interagir avec QGIS. 1. AVANT DE COMMENCER 1.1 Avertissement Vous êtes libre de faire circuler ce guide à toute personne souhaitant développer ses propres plugins. Les codes et les algorithmes de développement ne sont optimisés volontairement car le souhait de l’auteur était de faire simple, court et utile pour favoriser une meilleure compréhension. 1.2 Description du plugin Dans ce tutoriel nous allons réaliser un plugin QGIS qui permet de créer des polygones automatiquement connaissant les coordonnées des sommets. Cet outil peut être intéressant lorsque vous avez à créer régulièrement dans le cadre de vos tâches quotidiennes, un grand nombre de polygones.
  • 5. 5 Figure 1:Vue QGIS illustrant le problème à résoudre
  • 6. 6 Notre but sera d’écrire un plugin qui permettra de créer des polygones ayant la même étiquette. 1.3 Les outils indispensables Pour pouvoir développer vos plugins avec python et QGIS, vous devez installer sur votre ordinateur les outils suivants : 1.3.1 QGIS C’est évident. Cependant compte tenu de nombreuses versions QGIS, nous recommandons une version supérieure à la version 2.6. Vous pouvez télécharger la dernière version 2.x (n’utilisez pas la version 3.0 pour suivre exécuter le code de tutoriel) depuis le site du projet : https://www.qgis.org/fr/site/ 1.3.2 Python Lors de l’installation de QGIS, une version de python sera également installée par défaut. Dans le cas contraire vous pouvez installer depuis le site de Python, la version qui correspond à votre installation de QGIS ; https://www.python.org/ 1.3.3 Qt Designer Qt Designer est l'outil Qt pour la conception et la construction d'interfaces utilisateur graphiques (GUI) avec Qt Widgets. Vous pouvez composer et personnaliser vos fenêtres ou vos boîtes de dialogues selon le concept WYSIWYG (Ce que vous voyez, c’est ce que vous obtenez).
  • 7. 7 1.3.4 Plugin Builder Plugin Builder crée tous les fichiers nécessaires et le code de référence pour un plugin. Pour installer Plugin Builder, rendez – vous dans le gestionnaires extensions. Trouvez et installez Plugin Builder depuis le gestionnaire des extensions qgis. 1.3.5 Plugins Reloader Il s'agit d'un autre plugin auxiliaire qui permet le développement itératif de plugins. À l'aide de ce plugin, vous pouvez modifier le code de votre plugin et l'afficher dans QGIS sans devoir redémarrer QGIS à chaque fois. Trouvez et installez le plugin « Plugin Reloader ». 1.4 Les données de l’exemple Vous trouverez en annexe le tableau de coordonnées des sommets des polygones utilisés. Il vous appartiendra de créer une couche avec des points dans ce tableau. 1.5 Pré - requis Il est nécessaire d’avoir des notions de QGIS et des bases de la syntaxe python pour suivre avantageusement ce tutoriel.
  • 8. 8 2. PROCEDURE DE CREATION D’UN PLUGIN Le processus de création d’un plugin, tel qu’il sera présenté dans ce document est divisé en deux étapes :  La première étape consiste à créer l’interface graphique du plugin ;  La seconde étape consistera à écrire le code python qui réalise l’objet du plugin ; 2.1 Développement de l’interface graphique La création de l’interface graphique du plugin se fait grâce aux outils Plugin builder et Qt Designer. 1. Commencez par lancer le plugin « Plugin Builder » : ExtensionPlugin builder ; 2. Une boîte de dialogue s’ouvre avec plusieurs formulaires accessibles via le bouton suivant. Remplissez les champs de chaque formulaire. Figure 2:Fenêtre Plugin Builder
  • 9. 9 Tableau 1 : Description des champs des formulaires Plugin builder CHAMP EXEMPLE DESCRIPTION Class name PolygonAuto Nom qui sera utilisé dans le code python pour définir la classe principale de l’application Plugin Name Polygon_Automatique Il s’agit du titre de votre plugin. Il doit être explicite puisqu’il sera affiché. Description Ce plugin permet de créer des polygones Il s’agit de la description de notre plugin. Elle doit être très courte Version number 1.0 Il s’agit de la version de votre plugin Minimum Qgis version 2.0 Il s’agit de la version de QGIS minimum qui pourra exécuter ce le plugin Author /Company Gildas / STT-GIS Nom de l’auteur Email address gildas@stt-gis.net Adresse email de l’auteur Bug tracker Adresse vers un site répertoriant les bugs de l’application (lorsque votre plugin est publié) Home page Page web de votre plugin Repository Adresse vers le répertoire de votre plugin (lorsque votre plugin est publié) Tags Les tags sont une liste de mots-clés séparés par des virgules décrivant la (les) fonction (s) de votre plugin. Experimental Cochez cette case si votre plugin est considéré comme expérimental 3. Dans la suite, vous serez invité à choisir un répertoire pour votre plugin. Il s’agit d’un emplacement réservé qui se trouve dans le dossier .qgis2 qui se trouve dans votre répertoire personnel. L'emplacement de ce dossier dépend du système d’exploitation :  Windows : c:Usersusername.qgis2pythonplugins  Mac : /Users/username/.qgis2/python/plugins  Linux : /home/username/.qgis2/python/plugins
  • 10. 10 4. Naviguez jusque dans le dossier de votre plugin : Plugin Builder a créé pour vous un ensemble de fichier. Ne vous inquiétez pas, seuls quelques fichiers vont nous intéresser dans le cadre de ce tutoriel : Tableau 2 : Description des fichiers crées par Plugin Builder Fichiers Description PolygonAuto.py C’est le fichier principal de notre plugin. Il contient la classe principale du plugin qui donne les emplacements où doivent être implantés les boutons et barres d'outils dans QGIS. PolygonAuto_dialog_base.ui Il s’agit du dessin graphique de notre plugin resources.qrc C’est le fichier qui fait le lien avec les ressources (fichiers, icone, images..) utilisées dans notre plugin. icon.png Il s’agit de l’icône de notre plugin. Plugin Builder créer un par défaut, mais il est recommandé d’utiliser votre propre icône.
  • 11. 11 5. Ne quittez pas le dossier de votre plugin. Remplacez l’icône par défaut par une icône personnelle de 24*24 pixels en png comme par exemple : 6. Avant de pouvoir utiliser le plugin, nous devons compiler le fichier resources.qrc contenu dans le dossier du plugin. Pour cela lancez OSGeo4W Shell sur Windows ou un terminal sur Mac ou Linux. Figure 3:Fenêtre OSGeo4W Shell 7. A l’aide de la commande DOS cd, rendez – vous dans le répertoire de votre plugin : cd c:Usersxxxxxx.qgis2pythonpluginsPolygonAuto 8. Dès que vous êtes dans le répertoire, exécuter la commande : 9. Maintenant, nous pouvons visualiser notre plugin. Fermez QGIS et lancez-le à nouveau.
  • 12. 12 10. Depuis le menu Extension [Gérer et installer les plugins], activez le PolygoneAuto dans l'onglet Installé. Figure 4 : Activation du Plugin 11. Vous remarquerez qu'il y a une nouvelle icône dans la barre d'outils et une nouvelle entrée de menu Extension. Figure 5: Aperçu nouvelle extension
  • 13. 13 12. S vous cliquez sur l’outil, vous devez voir apparaître une fenêtre qui ressemble à la fenêtre ci – dessous : Figure 6:Fenêtre initiale du plugin 13. Nous allons maintenant personnaliser l’interface graphique de notre plugin. C’est là qu’intervient l’outil Qt Designer. Lancez Qt Designer. Une fenêtre s’ouvre, cliquez sur le bouton [ouvrir] : 14. Dans la fenêtre parcourir, rendez – vous dans le dossier de votre plugin et sélectionnez le fichier PolygonAuto_dialog_base.ui. Figure 7 : Ouverture de Qt Designer
  • 14. 14 15. L’interface de Qt est très intuitive, elle ne requiert pas qu’on s’y attarde. On peut distinguer 4 parties essentielles :
  • 15. 15 1. La barre de menu contient les fonctionnalités classiques et des outils qui permettent de gérer l’affichage et les évènements ; 2. Ce bandeau vous donne la possibilité de sélectionner un widget à placer sur la fenêtre principale ; 3. Au centre de Qt Designer, vous avez la fenêtre que vous êtes en train de dessiner. Pour le moment celle-ci possède deux boutons. 4. lorsqu'un widget est sélectionné sur la fenêtre principale, vous pouvez éditer ses propriétés. Vous noterez que les widgets possèdent en général beaucoup de propriétés, et que celles-ci sont organisées en fonction de la classe dans laquelle elles ont été définies. On peut ainsi modifier toutes les propriétés dont un widget hérite, en plus des propriétés qui lui sont propres. 16. Réorganisez votre fenêtre de façon à obtenir quelque chose comme ceci : Figure 8:Interface du plugin revue Pour l’instant, laisser les propriétés par défaut en dehors de la propriété text : Figure 9: Fenêtre propriété
  • 16. 16 17. Quand vous avez fini, retournez dans QGIS pour voir les modifications. Lancez le plugin « Plugin Reloader » et sélectionnez le plugin à recharger : Figure 10:Plugin reloader 18. Lancez maintenant votre plugin : Figure 11:Plugin redessiné 19. Vous devez constater la liste déroulante est vide et que si vous cliquez sur le bouton [lancer la création] vous n’aurez aucune action. Ce qui est normal puisque il n’y a pas de code associé ni à la liste déroulante, ni au bouton [Lancer la création]. Nous avons fini avec la première partie du développement de notre plugin.
  • 17. 17 2.2 Ecriture du code python du plugin Pour écrire le code de votre plugin, rendez- vous dans le répertoire du plugin et ouvrez grâce à un éditeur de code le fichier PolygonAuto.py qui comprend la classe principale de votre plugin. Dans ce fichier vous trouvez plusieurs fonctions reconnaissables par le mot clé def. Les seules fonctions qui vont nous intéresser sont les suivantes :  __init__ : qui donne accès à l’interface de QGIS ;  initGui () : qui initialise l’interface utilisateur de l’application ;  unload () : qui est appelée lorsque l’extension est déchargée ;  Run () : qui est appelée lorsque l’utilisateur clique sur le plugin ; 2.2.1 Import des modules et fonctions importantes : Commençons par ajouter un autre module important pour ce que nous volons faire. En dessous de ces lignes : Rajoutez : Il s’agit d’importer ici toutes les classes et méthodes nécessaires pour les manipulations cartographiques avec QGIS comme créer ou charger un fichier. 2.2.2 Code pour la liste déroulante Nous volons ajouter la liste des couches chargées dans Qgis au démarrage de l’application dans la liste déroulante. Nous devons donc ajouter notre code dans la fonction run (self). Repérez cette fonction et saisissez le code suivant :
  • 18. 18 20. De retour dans QGIS, ajouter deux ou trois couches. 21. Après avoir rafraichi le plugin grâce à plugin reloader, lancez le plugin. Figure 12:Couche chargée dans le plugin Si tout s’est bien passé, vous devez avoir liste des couches chargées dans la liste déroulante. 2.2.3 Code pour le bouton [Lancer la création] 22. Maintenant nous allons créer une fonction qui permet de réaliser l’objet de notre script. Au-dessus de la fonction run (self), créez une fonction creer_polygone.
  • 19. 19
  • 20. 20 23. Lions le bouton [lancer la création] à la fonction [créer_polygone] de sorte que lorsque le bouton est cliqué, la fonction s’exécute.  Repérez l’instruction :  Ajoutez en dessous le code suivant : Cette instruction permet de connecter le bouton à la fonction creer_polygon. 24. Récupérez le tableau des coordonnées en annexe pour créer dans QGIS une couche point. Cela peut se faire en créant un fichier csv à partir du tableau que vous ajouterez dans QGIS en tant que couche de texte délimité. 25. De retour dans QGIS, rechargez le plugin avec Plugin loader et lancez le plugin. Sélectionnez la couche contenant les sommets des polygones puis lancer la création des polygones. Figure 13:Exemple de création des polygones
  • 21. 21 CONCLUSION Le plugin créé est loin d’être optimal. Nous avons tout simplement voulu montrer le processus de création. Il vous appartient maintenant de l’améliorer.
  • 22. 22 ANNEXES Tableau des coordonnées POLYGONE X Y Polygone1 -1.41685 47.94181 Polygone1 -1.41653 47.9418 Polygone1 -1.41667 47.9416 Polygone1 -1.41678 47.94142 Polygone1 -1.41704 47.94163 Polygone2 -1.41593 47.94207 Polygone2 -1.41568 47.94203 Polygone2 -1.41575 47.94181 Polygone2 -1.41599 47.94181 Polygone2 -1.41617 47.94195 Polygone3 -1.41451 47.94182 Polygone3 -1.41431 47.9418 Polygone3 -1.41438 47.94168 Polygone3 -1.41445 47.94163 Polygone3 -1.41454 47.94156 Polygone3 -1.41462 47.94144 Polygone3 -1.41473 47.94159 Polygone3 -1.41487 47.94168 Polygone4 -1.41604 47.94167 Polygone4 -1.41581 47.94154 Polygone4 -1.41593 47.9413 Polygone4 -1.41617 47.94139 Polygone4 -1.41626 47.94156 Polygone5 -1.41542 47.9417 Polygone5 -1.41514 47.9417 Polygone5 -1.41521 47.94155 Polygone5 -1.41512 47.94139 Polygone5 -1.41536 47.94134 Polygone5 -1.41552 47.94151 Polygone6 -1.41517 47.94211 Polygone6 -1.41545 47.94213 Polygone6 -1.4153 47.94222 Polygone6 -1.41504 47.94223 Polygone6 -1.41497 47.94217 Polygone6 -1.41479 47.94207 Polygone6 -1.41496 47.94205 Polygone6 -1.41498 47.94198 Polygone6 -1.41507 47.94188 Polygone6 -1.41522 47.94189
  • 23. 23 POLYGONE X Y Polygone6 -1.4153 47.94199 Polygone7 -1.41631 47.94099 Polygone7 -1.41628 47.94121 Polygone7 -1.41603 47.94115 Polygone7 -1.41604 47.94099 Polygone7 -1.41587 47.94086 Polygone7 -1.41617 47.94083 Polygone7 -1.41632 47.9409 Polygone8 -1.41538 47.94107 Polygone8 -1.41489 47.94121 Polygone8 -1.4148 47.94106 Polygone8 -1.4149 47.94097 Polygone8 -1.41482 47.94083 Polygone8 -1.41485 47.94068 Polygone8 -1.41513 47.94069 Polygone8 -1.41533 47.94078 Polygone8 -1.41548 47.9409 Polygone9 -1.4144 47.94124 Polygone9 -1.41402 47.94122 Polygone9 -1.41402 47.94078 Polygone9 -1.41438 47.94075 Polygone10 -1.41719 47.94118 Polygone10 -1.41671 47.94133 Polygone10 -1.41686 47.94109 Polygone10 -1.41682 47.94076 Polygone10 -1.4173 47.94095 Polygone11 -1.41421 47.94169 Polygone11 -1.41398 47.94185 Polygone11 -1.41374 47.94155 Polygone11 -1.41383 47.94134 Polygone11 -1.41422 47.94137 POUR ALLER PLUS LOIN Si vous voulez aller plus loin dans la création des plugins, vous pouvez consulter :  L’indispensable livre des recettes QGIS : http://urlz.fr/5nsT  Le livre Automatiser dans QGIS en utilisant Python : http://urlz.fr/5nsp