Accueil |Communications Utilisateurs |Session Plénière |Ateliers |Classe |Concours |Partenaires |Contacts 
 
 
AccueilPlan du site

Dynamiser vos cartes sous ArcMap en simulant le déplacement d’un véhicule sur une route en vba (Arcview 9.0)


Session Infrastrustures / Réseaux
 


Frédéric PRALLY
Courriel : frederic.prally@setegue.fr
 

SETEGUE
53, rue Charles Frérot
B.P. 91
94253 GENTILLY CEDEX
Site internet : www.ged.fr

 

Mots-clés et logiciels ESRI utilisés
 


Mots-clés : ArcGIS, Arcview, ArcMap, version 9.0, vba, animation, IMxDocument, IMap, IActiveView, IFeatureLayer, IFeature, IPolyline, IPoint, IPointCollection, IDisplay.


Logiciels ESRI utilisés : Arcview 9.0

 

Cette communication a pour objectif de permettre à un utilisateur d’ArcGIS 9.0 de réaliser l’animation simple d’une ligne en ayant recours aux ArcObjects en vba.
Après avoir montré la simulation du déplacement d’un véhicule sur une route et quelques autres exemples d’animation, nous aborderons de manière détaillée le code.
Cette communication s’adresse plus particulièrement aux utilisateurs d’ArcGIS dont la version est antérieure à la version 9.2 puisque ces derniers peuvent avoir directement accès à l’interface IAGAnimationUtils pour réaliser ce type d’animations. (Voir l’exemple Create_FlybyFromPath_Animation sur le site EDN d’ESRI à cette adresse http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_Doc/COM_Samples_Docs/Animation/D8DDB99F-E99E-485E-939C-4015C93768C3.htm )

1 - Présentation des animations :




Cliquer pour agrandir
Animation n°1 : simulation du déplacement d’un véhicule sur une route.



Cliquer pour agrandir
Animation n°2 : simulation du déplacement d’un avion.



Cliquer pour agrandir
Animation n°3 : simulation de l’affichage progressif du tracé de la ligne ferroviaire Marseille-Lyon – Paris.


2 – Présentation de la barre d’outils : animation de ligne




La barre d’outils contient les différentes commandes permettant à l’utilisateur de réaliser l’animation de sa ligne dans un document ArcMap.
 
Vue d’ensemble de la barre d’outils Animation de ligne :



L’utilisateur dispose d’un large choix d’animation de ligne déjà paramétré via la liste déroulante « Choix de l’animation ».
 
Il s’agit de :


Choix de l’animation :
Progression ligne     
Description : Simule l’affichage progressif d’une ligne


Choix de l’animation :
Progression ligne – points   
Description : Clignotement du point de départ et d’arrivée de l’animation
avant de simuler l’affichage progressif d’une ligne


Choix de l’animation :
Déplacement point
Description : Simule le déplacement d’un point


Choix de l’animation :
Déplacement avion
Description : Simule le déplacement d’un avion


Choix de l’animation :
Déplacement bateau
Description : Simule le déplacement d’un bateau


Choix de l’animation :
Déplacement voiture
Description : Simule le déplacement d’une voiture


Choix de l’animation :
Déplacement train
Description : Simule le déplacement d’un train


De plus, il a la possibilité de personnaliser son animation grâce aux trois commandes disponible dans la partie « Options ».
 
Il s’agit de :
 
-          La vitesse d’exécution de l’animation
Elle varie de 1 à 10, de l’exécution la plus lente à la plus rapide.
 
-          la couleur de représentation du symbole ponctuel ou linéaire
Par un simple clic sur le rectangle de couleur, l’utilisateur peut faire apparaître la palette de couleurs standards d’ArcMap pour sélectionner une autre couleur et l’appliquer au symbole.
 
-          La taille ou l’épaisseur du symbole ponctuel ou linéaire
Il suffit d’entrer la valeur de la taille dans la zone de texte prévue à cet effet pour appliquer la taille du symbole ou l’épaisseur de la ligne.
 
 
Une fois ces paramètres définis, l’utilisateur pourra jouer l’animation en cliquant sur le bouton « Exécuter l’animation ».
Vous pouvez tester cette animation en ouvrant le fichier Animation01_simulation du déplacement d'un véhicule sur une route.mxd et retrouver l’ensemble du code dans l’éditeur VB d’ArcMap.

Animation01_simulation du déplacement d'un véhicule sur une route.mxd
Taille : 412 ko - Dernières modifications : 10/09/2007
 
Dossier code
Taille : 1177 ko - Dernières modifications : 11/09/2007
 

3 - Explication du code :


Dans cette partie, nous allons expliquer de manière détaillée le code qui permet l’exécution de l’animation dans une version standard d’ArcMap 9.0.
 
Le principe :
Une fois que l’on a récupéré une ligne d’une couche linéaire, il s’agit de stocker dans une collection de points la position des points situés tous les 1% du début de la ligne. Cette opération s’effectue en ayant recours à la méthode QueryPoint.
 
object.QueryPoint(extension, DistanceAlongCurve, asRatio, outPoint )
 
Ensuite il s’agit d’afficher successivement chaque point de cette collection pour obtenir un effet de déplacement le long de la ligne dans le cas de l’exécution du code DeplacementPointSurLigne.
 
Alors que dans le cas de l’exécution du code DeplacementProgressifLigne, il faut là reconstituer des segments à partir des points stockés dans la collection pour les afficher successivement afin d’obtenir un effet de progressif de défilement de la ligne.
 
Dans les deux cas, les données sont dessinées directement sur l’écran à l’aide des méthodes DrawPoint ou DrawLine de l’interface IDisplay.
 
L’effet d’animation est optimal grâce à l’emploi de l’API Sleep Lib "kernel32" qui permet de réaliser un temps de pause après chaque affichage du symbole.
 
Sleep(50)             ‘Temps pause en millisecondes
 
 
Retrouvez le détail du code ci-dessous :

Présentation du code pour afficher le déplacement d’un point sur une ligne.
Taille : 34 ko - Dernières modifications : 10/09/2007
 
Présentation du code pour l’affichage progressif d’une ligne.
Taille : 36 ko - Dernières modifications : 10/09/2007
 

Comment utiliser les deux exemples décrits précédemment :
1 Ouvrir ArcMap et ajouter une couche de lignes dans la table des matières;
2 Ajouter une ligne si la couche est vide;
3 La couche de ligne doit être en première position dans la table des matières;
4 Copier/coller le code suivant dans l’éditeur VB d’ArcMap;
5 Lancer la macro DeplacementPointSurLigne ou DeplacementProgressifLigne dans ArcMap en faisant Outils > Macros > Macros > nom de la macro


© ESRI France