Bonjour à tous,
j'ai une google map dans un webbrowser, et j'aimerais récupérer dans mon programme c# la latitude et la longitude de l'endroit cliqué sur la map.
Est-ce possible ?
Merci
Version imprimable
Bonjour à tous,
j'ai une google map dans un webbrowser, et j'aimerais récupérer dans mon programme c# la latitude et la longitude de l'endroit cliqué sur la map.
Est-ce possible ?
Merci
Ça n'inspire personne :p ?
Apparemment une piste à suivre serait d'utiliser mshtml.dll, mais c'est pas très clair pour l'instant ...
Bonjour,
sur l'événement onclick de la map, il est retourné,par l'api, des informations fortes intéressantes qui une fois récupérés peuvent être transmise coté serveur pour traitement.
La bien sûr je reste coté client en javascript.
Oui j'avais noté comment récupérer la position en javascript, mais le problème était de passer ces valeurs au webbrowser.
Grâce à DonQuiche sur le forum C# qui m'a dit :
J'ai mis en place la solution suivante qui marche très bien :Citation:
Cela me semble possible avec l'approche suivante :
1) Utiliser WebBrowser.ObjectForScripting pour spécifier un objet COM (un objet dotnet marqué ComVisible) qui pourra être appelé depuis le javascript
2) Modifier le DOM du document pour remplacer le handler JS "click" original afin qu'il appelle ton objet COM.
PS : Gaffe à la sécurité. Il semblerait sage de vérifier que l'url de la page vient bien de Google.
C#
Code:
1
2
3
4
5
6 private void form_load(object sender, EventArg e) { webBrowser1.ObjectForScripting = this; ... }
JavaScript :Code:
1
2
3
4
5
6 //Code appelé par le JavaScript public void FromGM_MapClick(float Lat, float Lon) { MessageBox.Show("Coord : " + Lat.ToString() + " / " + (Lon).ToString()); }
Code:
1
2
3
4
5 function OnMapClick(overlay,point) { if (overlay.point) window.external.FromGM_MapClick(overlay.point.x,overlay.point.y) ; }