Bonjour,
Je sollicite votre aide pour l'utilisation de google maps API.
Je souhaiterai automatiser le calcul d'itinéraire (distance + temps) entre les coordonnée (lattitude+longitude) de différents utilisateur vers une adresse final!
pour ce faire, j'ai récupérer une classe PHP sur le net qui permet la génération du code javascript propre a google maps, il s'agit du GoogleMapAPI.class.php v2.2 !!!!
Voici le code que j'y ai rajouté dans la fonction 'onload'
Puis voici le code la fonction 'fonction'
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 // Récupération des données des utilisateurs (principalement les adresses) $o_utilisateur = new utilisateur(); $o_utilisateur->getAll(); //La variable $_output permet le renvoie du code javascript final, pour le moment, il contient toutes les données pour l'affichage de la carte $_output .= 'i_max = 0; gdir = new GDirections(map);' . "\n"; // création de l'objet pour le calcul d'itineraire for($i = 0; $i < $o_utilisateur->i_nbLigne; $i++){ $_output .= 'i_max = '.$i.';' . "\n"; $o_utilisateur->nextLine(); $adresseUtilisateur = $o_utilisateur->adresse.', '.$o_utilisateur->ville; // itinéraire adresse utilisateur vers paris puis appelle de la fonction 'fonction' $_output .= sprintf(' gdir.load("from: '.$adresseUtilisateur.' to: paris"); GEvent.addListener(gdir, "load", fonction); ') . "\n"; }
Ce code doit donc pour chaque adresse utilisateur, concatener la distance et le temps dans la variable 'resultat' et, arriver à la derniére adresse, afficher le résultat!
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 $_output .= 'var resultat = ""'."\n"; // Fonction permettant d ecouter la direction (recup duree + distance) $_output .= ' function fonction(objetDir){ resultat += objetDir.getDistance().meters + "-" + objetDir.getDuration().seconds + ";" ; i = i + 1; if(i == i_max){ alert(resultat); } }'."\n";
Mon code est fonctionnel, je récupére bien les données que j'ai besoin, par contre celui ci ne s'execute qu'une fois sur x!
Chez moi, la code fonctionne environ une fois sur 5 et au travail (meilleur débit), il fonctionne 4 fois sur 5!
Est ce le débit qui pose problème?
Est ce que google maps limite le nombre de calcul d'itinéraire par chargement de carte? (j'ai fait le test avec 20 adresses)
Y a t'il un moyen plus simple/sure d'obtenir le même résultat, à savoir calcul de distance (par la route) et du temps!!!!!
Merci de m'avoir lu et encore plus merci de me répondre ^^
Partager