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 :

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);
}
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
 
...
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()+"\");" });
            }
...
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.....).

J'ai essayé à la place de l'alert, d'implementer une variable feuvert de cette façon :

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);
}
ca marche mais le webbrowser m'affiche le message à chaque fois "un script ralentit.....", et je suis obligé de mettre continuer à chaque passage.

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.