Bonjour,
Actuellement, pour acceder à googlemap, j'utilise un webbrowser et la communication avec javascript.
une seule chose m'interesse dans mon application, c'est les directions.
donc j'ai les méthodes JS suivantes :
puis dans C# :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 var gdir; function initialize() { gdir = new GDirections(null, null); GEvent.addListener(gdir,"load",function() { var duree = gdir.getDuration(); var dist = gdir.getDistance(); window.external.saveData(duree.seconds,dist.meters); }); } function setDirections(from,to) { gdir.load("from: " + from + " to: " + to, { "locale": "fr" }); //alert("from: " + from + " to: " + to); }
Le soucis est que mon gdir.load ne renvoi ni resultat, ni erreur, sauf si je décommente mon alert qui suit. Si je le décommente, j'ai mes resultats (mais bon cliquer plusieurs fois sur un alert.....).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ... for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow row = ds.Tables[0].Rows[i]; webBrowser1.Document.InvokeScript("eval", new string[] { "setDirections(\""+ row[2].ToString()+", "+row[3].ToString()+"\",\""+ row[4].ToString()+", "+row[5].ToString()+"\");" }); } ...
J'ai essayé à la place de l'alert, d'implementer une variable feuvert de cette façon :
ca marche mais le webbrowser m'affiche le message à chaque fois "un script ralentit.....", et je suis obligé de mettre continuer à chaque passage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 var gdir; function initialize() { gdir = new GDirections(null, null); GEvent.addListener(gdir,"load",function() { var duree = gdir.getDuration(); var dist = gdir.getDistance(); feuvert = true; window.external.saveData(duree.seconds,dist.meters); }); } function setDirections(from,to) { feuvert = false; gdir.load("from: " + from + " to: " + to, { "locale": "fr" }); //alert("from: " + from + " to: " + to); while(!feuvert); }
je pense donc passer directement par le webservice mais je n'ai jamais utilisé les webservice avant, donc si quelqu'un pouvait me guider, ca serait sympa.
Merci d'avance.
Partager