Bonjour à tous,
Je cherche actuellement à développer un petit outil qui ferait la chose suivante : à parti d'une adresse de destination, et de plusieurs adresses d'origine, on geocoderait ces adresses de destination (avec le service Geocoding), puis on calculerait le temps de transport entre chaque origine et la destination (Distance Matrix).
Le gros problème : je suis pas (du tout) un expert et javascript.
Le problème du moment : l'utilisateur saisit dans un textarea les adresses d'origine, séparées par un retour chariot. en utilisant la fonction split(), je range chaque adresse dans un tableau. Je boucle ensuite sur chaque élément du tableau, et envoie le bouzin au petit Google pour qu'il me retourne les coordonnées et l'adresse retournée que j'affiche dans un second textarea. Mais j'aimerais aussi afficher l'adresse saisie l'utilisateur, afin qu'il puisse comparer avec l'adresse retournée par google. Et ca, ca ne marche pas... Je pense que c'est juste un problème de passation de valeurs, mais je ne m'en sors pas...
Merci pour votre aide (et votre indulgence)
PJ
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37 var adresse_en_cours; function geocodage() { var adresses = document.getElementById('liste_origine').value; var liste_adresse = adresses.split('\n'); //On boucle sur chaque adresse contenue dans le tableau for(var i= 0; i < liste_adresse.length; i++) { adresse_en_cours = liste_adresse[i]; //Géocodage geocoder.geocode( { 'address': adresse_en_cours}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { //Si le statut est ok, on écrit le résultat dans la page map.setCenter(results[0].geometry.location); //adresse_en_cours est toujours égal au dernier élément du tableau... document.getElementById('resultat').value += "Adresse|"+adresse_en_cours+"|Lat|" + results[0].geometry.location.lat() + "|Long|" + results[0].geometry.location.lng() + "|Adresse retenue|" + results[0].formatted_address + "\n"; var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { document.getElementById('resultat').value += "Erreur \n"; } }); //Fin géocodage } }
Partager