Rapport de message :*
 

Re: Récupérer latitude et longitude dans mon code vba

Titre du sujet : Re: Récupérer latitude et longitude dans mon code vba
par myDearFriend! le 02/01/2008 16:05:18

Bonjour marioexcel, JCGL,

Comme je le précise dans l'article Cartographie et Localisation Géographique, il s'agit là d'une introduction au sujet, destinée aux plus férus des passionnés que nous sommes et qui n'ont pas peur de se plonger dans les méandres du html et javascripts, le tout associé à VBA. N'étant pas moi-même spécialiste dans ces langages, j'ai pas mal galéré avant de pouvoir mettre en oeuvre ce qui est détaillé dans cet article ou même l'application mDF XLmap et le travail est loin d'être terminé pour approfondir le sujet...

marioexcel, tu t'attaques là à un projet vaste et relativement compliqué, et je t'en félicite, mais je me vois mal assurer un support comme je le fais volontier pour du pure VBA qui reste bien plus à ma portée.

A mon avis, la base de ton travail et tout ce qu'il faut pour parvenir à tes fins se trouve dans ces liens : The Virtual Earth Interactive SDK et Virtual Earth Map Control 6.0 de la MSDN Library.

Pour info, les coordonnées Latitude/Longitude sont récupérables notamment grâce à la méthode Javascript GetCenter() du contrôle de carte.

Dans mDF XLmap, pour récupérer les coordonnées Lat/Long lors du simple clic sur la carte, j'ai dû utilisé une astuce assez alambiquée, dont le principe est le suivant :
[list=1]
[*]Ajout d'un évènement OnClick au contrôle de carte (méthode AttachEvent)
[*]Ajout d'un objet <INPUT> de type Hidden qui va récupérer les coordonnées de la souris sur la page web (converties ensuite en Lat/long par la méthode PixelToLatLong du contrôle de carte).
[*]Cet objet <INPUT> crée ensuite son propre évènement OnClick qui est finalement récupéré par VBA grâce à la déclaration d'un objet gérant cet évènement (utilisation du mot clé WithEvents dans la déclaration VBA)
[/list]
Comme tu peux le voir, l'interaction entre VBA et la page html du contrôle de carte n'est pas très simple à gérer et demande une certaine maitrise VBA mais aussi une bonne connaissance des propriétés et méthodes liées au contrôle de carte (et beaucoup de tests !).

Cordialement,