Géocodage & passation de valeurs
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:
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
}
} |