Support d’Introduction à la programmation en VBA sur ArcGIS
1. Introduction
ArcGIS permet au développeur d’ajouter de nouvelles fonctionnalités à ses interfaces (ArcMap, ArcCatalog, ArcToolbox). Les différents types de développement ont été exposés dans le document ENSG-DCAIG-Introduction à ArcGIS pour le développeur.
Ce manuel décrit plus spécifiquement l'utilisation des bibliothèques d’objets ArcObjetcs enVBA. Ce mode de développement s’inscrit donc dans un contexte ArcGIS bureautique.
On rappelle que VBA (Visual Basic for Application) est à la fois un langage et un environnement de développement. C'est un langage interprété dont l'intérêt est d'être partagé également par d'autres applications (notamment bureautiques : Word, Access, Excel ...).
Ce cours s'adresse aux débutants en programmation sur ArcGIS ayant un pré-requis en programmation (VBA ou autre langage). Après un chapitre (chap. 2) consacré à la personnalisation de l'interface ArcMap sans programmation, le chapitre 3 propose un bref rappel de la programmation en VBA. Le chapitre 4, essentiel pour la compréhension de ce cours, décrit les principes de la programmation sur ArcGIS (description du vocabulaire, comment utiliser les diagrammes, qu'est-ce que la norme COM etc ...). Les 13 chapitres suivants décrivent plus en détail les différentes possibilités de développement suivant les thèmes souhaités (analyse, mise en page, symbolisation, gestion des données etc ...) et sont illustrés d'exemples de code (sur fond grisé, police courrier)
Support d’Introduction à la programmation en VBA sur ArcGIS
Table des matières :
1. INTRODUCTION .7
2. PERSONNALISATION DE L'INTERFACE : INTRODUCTION 9
2.1. LA BOITE PERSONNALISER 9
2.2. SAUVEGARDE DES PERSONNALISATIONS 9
2.3. EXEMPLE DE CREATION D'UNE COMMANDE 10
3. INTRODUCTION À VISUAL BASIC FOR APPLICATION 13
3.1. EDITEUR VISUAL BASIC .13
3.2. SYNTAXE VBA: RAPPELS 14
3.2.1. Types de variables .14
3.2.2. Déclaration et portée .14
3.2.3. Les différents types de procédures .15
3.2.4. Instructions conditionnelles .16
3.2.5. Boucles 17
3.2.6. Passage d'arguments : ByRef et ByVal 18
3.2.7. Quelques remarques supplémentaires .18
4. INTRODUCTION A ARCOBJECTS 19
4.1. COM ET INTERFACES .19
4.1.1. Pourquoi des interfaces ? 19
4.1.2. Implémentation 19
4.1.3. Query Interfaces (QI) 21
4.2. OBJECT MODEL DIAGRAMS 21
4.2.1. Classes .22
4.2.2. Relations 24
4.2.3. Propriétés 26
4.2.4. Interfaces .27
4.3. OU TROUVER DE L'AIDE ? .28
4.3.1. Aide en ligne 28
4.3.2. Explorateur d'objets (Editeur VBA) .29
4.3.3. Esri Object Browser 30
4.4. GLOBAL VARIABLES SCOPE 30
4.5. EXEMPLES : MANIPULATION D'OBJETS ARCMAP 31
4.5.1. ActiveView .31
4.5.2. Layers 32
5. LECTURE DE CHAMPS, REQUETE SEMANTIQUE, TRAVAIL SUR LA SELECTION 35
5.1. FEATURECLASS ET FEATURE 35
5.1.1. Présentation générale 35
5.1.2. IFeatureClass 36
5.1.3. Lecture de valeurs de champs 37
5.2. ENUMERATION DES OBJETS SELECTIONNES SUR LA CARTE .37
5.3. CURSEUR SUR LES OBJETS SELECTIONNES (SUR UNE COUCHE) .38
5.4. REQUETES SEMANTIQUE AVEC LES QUERY FILTERS .39
5.5. RECUPERATION D'EVENEMENT SUR LA SELECTION .40
6. GEOMETRIE 41
6.1. GEOMETRIE DANS UNE GEODATABASE .41
6.2. LA GEOMETRIE DANS ARCOBJECTS 41
6.2.1. Points et Multipoints 42
6.2.2. Segments (Line, Circular Arc, BezierCurve) .42
6.2.3. Paths et Polylines 42
6.2.4. Rings et Polygons 43
6.2.5. Envelopes 44
6.3. EXEMPLE :LECTURE DE LA GEOMETRIE D'UN POLYGONE .45
7. AFFICHAGE ET RAFRAICHISSEMENT D'ECRAN .47
7.1. UTILISATION DU SCREENDISPLAY POUR DESSINER DES ELEMENTS GRAPHIQUES .47
7.2. RAFRAICHISSEMENTS D'ECRAN 48
8. SYMBOLES .51
8.1. COULEUR .51
8.2. POINTS .52
8.3. LIGNES .53
8.4. SURFACE 55
8.5. TEXTE 55
9. SYMBOLISATION DE COUCHES 59
9.1. LA CLASSE FEATURERENDERER .59
9.2. EXEMPLE : REPRESENTATION EN UTILISANT UNE CLASSIFICATION PAR INTERVALLES EGAUX .59
9.2.1. Création de l'histogramme 60
9.2.2. Création de la classification 60
9.2.3. Création d'une rampe de couleurs .61
9.2.4. Création du Renderer 62
9.3. AFFICHAGE DE LABELS .62
10. MISE EN PAGE 65
10.1. SCHEMA GENERAL .65
10.2. CAS PARTICULIER DES ELEMENTS LIES A LA CARTE 67
10.3. GRAPHICS CONTAINER .68
10.4. EXEMPLE :AJOUT D'UNE IMAGE A LA MISE EN PAGE 69
10.5. ZOOM SUR LA PAGE 70
11. TRANSFORMATION DE COORDONNEES - PROJECTIONS 71
11.1. IDISPLAYTRANSFORMATION 71
11.2. CREATION D'UN OUTIL : EXEMPLE D'OUTIL "PAN" .72
11.3. REFERENCES SPATIALES ET PROJECTION 73
11.3.1. Références spatiales 73
11.3.2. Changement de projection .75
12. ANALYSE SPATIALE .77
12.1. SPATIALFILTER 77
12.2. SPATIAL OPERATOR INTERFACES 78
12.2.1. ITopologicalOperator .78
12.2.2. IProximityOperator .79
12.2.3. IRelationalOperator 80
12.3. TRANSFORMATIONS 2D 80
13. MISE A JOUR DE DONNEES 81
13.1. CREATION D'ENTITES OU AJOUT D'ENREGISTREMENTS DANS UNE TABLE 81
13.2. UTILISATION D'UNE SESSION D'EDITION 82
13.2.1. Introduction et rappel des fonctionnalités d'édition 82
13.2.2. Ouverture et fermeture d'une session d'édition .83
13.2.3. Opérations de mise à jour et annulations 84
14. AJOUT DE COUCHE A PARTIR DE DONNEES EXISTANTES .85
14.1. RAPPEL :LES DIFFERENTS MODES DE STOCKAGE DANS ARCCATALOG 85
14.2. SCHEMA GENERAL .86
14.3. EXEMPLE DETAILLE D'AJOUT DE DONNEES PROVENANT D'UN SHAPEFILE .86
14.4. EXEMPLE D'AJOUT DE DONNEES PROVENANT D'UNE COUVERTURE .88
15. CREATION D'UNE BASE DE DONNEES 89
15.1. CREATION D'UNE GEODATABASE .89
15.1.1. Création d'une géodatabase vide .89
15.1.2. Références spatiales et champ "Géométrie" 89
15.1.3. Création de champs .91
15.1.4. CreateFeatureClass .92
15.2. EXPORT ET CONVERSIONS 93
16. PROGRAMMATION DE L'INTERFACE UTILISATEUR 95
16.1. UTILISATION DES COMMANDES EXISTANTES 95
16.2. CREATION DE BARRES D'OUTILS, MENUS ET COMMANDES 96
16.2.1. Création d'une barre d'outil 96
16.2.2. Création de menus et commandes .96
16.2.3. Création d'un menu contextuel 97
16.3. BARRE DE PROGRESSION, BARRE D'ETAT .98
17. PERSONNALISATION ARCCATALOG 99
17.1. GXDIALOG .99
17.2. GXAPPLICATION ET GXSELECTION. .100
17.3. GXVIEW .101
18. INDEX 102
Support d’Introduction à la programmation en VBA sur ArcGIS
Support d’Introduction à la programmation en VBA sur ArcGIS
1. Introduction
ArcGIS permet au développeur d’ajouter de nouvelles fonctionnalités à ses interfaces (ArcMap, ArcCatalog, ArcToolbox). Les différents types de développement ont été exposés dans le document ENSG-DCAIG-Introduction à ArcGIS pour le développeur.
Ce manuel décrit plus spécifiquement l'utilisation des bibliothèques d’objets ArcObjetcs enVBA. Ce mode de développement s’inscrit donc dans un contexte ArcGIS bureautique.
On rappelle que VBA (Visual Basic for Application) est à la fois un langage et un environnement de développement. C'est un langage interprété dont l'intérêt est d'être partagé également par d'autres applications (notamment bureautiques : Word, Access, Excel ...).
Ce cours s'adresse aux débutants en programmation sur ArcGIS ayant un pré-requis en programmation (VBA ou autre langage). Après un chapitre (chap. 2) consacré à la personnalisation de l'interface ArcMap sans programmation, le chapitre 3 propose un bref rappel de la programmation en VBA. Le chapitre 4, essentiel pour la compréhension de ce cours, décrit les principes de la programmation sur ArcGIS (description du vocabulaire, comment utiliser les diagrammes, qu'est-ce que la norme COM etc ...). Les 13 chapitres suivants décrivent plus en détail les différentes possibilités de développement suivant les thèmes souhaités (analyse, mise en page, symbolisation, gestion des données etc ...) et sont illustrés d'exemples de code (sur fond grisé, police courrier)
Support d’Introduction à la programmation en VBA sur ArcGIS
Table des matières :
1. INTRODUCTION .7
2. PERSONNALISATION DE L'INTERFACE : INTRODUCTION 9
2.1. LA BOITE PERSONNALISER 9
2.2. SAUVEGARDE DES PERSONNALISATIONS 9
2.3. EXEMPLE DE CREATION D'UNE COMMANDE 10
3. INTRODUCTION À VISUAL BASIC FOR APPLICATION 13
3.1. EDITEUR VISUAL BASIC .13
3.2. SYNTAXE VBA: RAPPELS 14
3.2.1. Types de variables .14
3.2.2. Déclaration et portée .14
3.2.3. Les différents types de procédures .15
3.2.4. Instructions conditionnelles .16
3.2.5. Boucles 17
3.2.6. Passage d'arguments : ByRef et ByVal 18
3.2.7. Quelques remarques supplémentaires .18
4. INTRODUCTION A ARCOBJECTS 19
4.1. COM ET INTERFACES .19
4.1.1. Pourquoi des interfaces ? 19
4.1.2. Implémentation 19
4.1.3. Query Interfaces (QI) 21
4.2. OBJECT MODEL DIAGRAMS 21
4.2.1. Classes .22
4.2.2. Relations 24
4.2.3. Propriétés 26
4.2.4. Interfaces .27
4.3. OU TROUVER DE L'AIDE ? .28
4.3.1. Aide en ligne 28
4.3.2. Explorateur d'objets (Editeur VBA) .29
4.3.3. Esri Object Browser 30
4.4. GLOBAL VARIABLES SCOPE 30
4.5. EXEMPLES : MANIPULATION D'OBJETS ARCMAP 31
4.5.2. Layers 32
5. LECTURE DE CHAMPS, REQUETE SEMANTIQUE, TRAVAIL SUR LA SELECTION 35
5.1. FEATURECLASS ET FEATURE 35
5.1.1. Présentation générale 35
5.1.2. IFeatureClass 36
5.1.3. Lecture de valeurs de champs 37
5.2. ENUMERATION DES OBJETS SELECTIONNES SUR LA CARTE .37
5.3. CURSEUR SUR LES OBJETS SELECTIONNES (SUR UNE COUCHE) .38
5.4. REQUETES SEMANTIQUE AVEC LES QUERY FILTERS .39
5.5. RECUPERATION D'EVENEMENT SUR LA SELECTION .40
6. GEOMETRIE 41
6.1. GEOMETRIE DANS UNE GEODATABASE .41
6.2. LA GEOMETRIE DANS ARCOBJECTS 41
6.2.1. Points et Multipoints 42
6.2.2. Segments (Line, Circular Arc, BezierCurve) .42
6.2.4. Rings et Polygons 43
6.2.5. Envelopes 44
6.3. EXEMPLE :LECTURE DE LA GEOMETRIE D'UN POLYGONE .45
7. AFFICHAGE ET RAFRAICHISSEMENT D'ECRAN .47
7.1. UTILISATION DU SCREENDISPLAY POUR DESSINER DES ELEMENTS GRAPHIQUES .47
7.2. RAFRAICHISSEMENTS D'ECRAN 48
8. SYMBOLES .51
8.1. COULEUR .51
8.2. POINTS .52
8.3. LIGNES .53
8.4. SURFACE 55
8.5. TEXTE 55
9. SYMBOLISATION DE COUCHES 59
9.1. LA CLASSE FEATURERENDERER .59
9.2.1. Création de l'histogramme 60
9.2.2. Création de la classification 60
9.2.3. Création d'une rampe de couleurs .61
9.2.4. Création du Renderer 62
9.3. AFFICHAGE DE LABELS .62
10. MISE EN PAGE 65
10.1. SCHEMA GENERAL .65
10.2. CAS PARTICULIER DES ELEMENTS LIES A LA CARTE 67
10.3. GRAPHICS CONTAINER .68
10.4. EXEMPLE :AJOUT D'UNE IMAGE A LA MISE EN PAGE 69
10.5. ZOOM SUR LA PAGE 70
11. TRANSFORMATION DE COORDONNEES - PROJECTIONS 71
11.1. IDISPLAYTRANSFORMATION 71
11.2. CREATION D'UN OUTIL : EXEMPLE D'OUTIL "PAN" .72
11.3. REFERENCES SPATIALES ET PROJECTION 73
11.3.2. Changement de projection .75
12. ANALYSE SPATIALE .77
12.1. SPATIALFILTER 77
12.2. SPATIAL OPERATOR INTERFACES 78
12.2.1. ITopologicalOperator .78
12.2.2. IProximityOperator .79
12.2.3. IRelationalOperator 80
12.3. TRANSFORMATIONS 2D 80
13. MISE A JOUR DE DONNEES 81
13.1. CREATION D'ENTITES OU AJOUT D'ENREGISTREMENTS DANS UNE TABLE 81
13.2. UTILISATION D'UNE SESSION D'EDITION 82
13.2.1. Introduction et rappel des fonctionnalités d'édition 82
13.2.2. Ouverture et fermeture d'une session d'édition .83
13.2.3. Opérations de mise à jour et annulations 84
14. AJOUT DE COUCHE A PARTIR DE DONNEES EXISTANTES .85
14.2. SCHEMA GENERAL .86
14.3. EXEMPLE DETAILLE D'AJOUT DE DONNEES PROVENANT D'UN SHAPEFILE .86
14.4. EXEMPLE D'AJOUT DE DONNEES PROVENANT D'UNE COUVERTURE .88
15. CREATION D'UNE BASE DE DONNEES 89
15.1. CREATION D'UNE GEODATABASE .89
15.1.1. Création d'une géodatabase vide .89
15.1.2. Références spatiales et champ "Géométrie" 89
15.1.3. Création de champs .91
15.1.4. CreateFeatureClass .92
15.2. EXPORT ET CONVERSIONS 93
16. PROGRAMMATION DE L'INTERFACE UTILISATEUR 95
16.1. UTILISATION DES COMMANDES EXISTANTES 95
16.2. CREATION DE BARRES D'OUTILS, MENUS ET COMMANDES 96
16.2.1. Création d'une barre d'outil 96
16.2.2. Création de menus et commandes .96
16.3. BARRE DE PROGRESSION, BARRE D'ETAT .98
17. PERSONNALISATION ARCCATALOG 99
17.1. GXDIALOG .99
17.2. GXAPPLICATION ET GXSELECTION. .100
17.3. GXVIEW .101
18. INDEX 102
Support d’Introduction à la programmation en VBA sur ArcGIS