IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Calcul itineraire google maps Api


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de crovette51101
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Points : 57
    Points
    57
    Par défaut Calcul itineraire google maps Api
    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'

    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";
    }
    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
     
     
    $_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";
    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!

    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 ^^

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Pardon pour cette réponse qui ne t'apportera pas la solution mais... appeler une fonction "fonction", comme mauvais choix d'identificateur ça me parait presque indépassable

    (cela dit ton post m'intéresse, parce que je vais bientôt avoir moi aussi besoin d'utiliser l'API Googlemap pour un projet en ... PHP tiens tiens )

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    Membre du Club Avatar de crovette51101
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    J'avoue, j'ai pas mis beaucoup de temps à le trouver le nom de cette fonction!!!!
    Si jamais tu as besoin d'un coup de pouce pour l'utilisation de l'API google maps, tu pourras me demander, je commence à la connaitre ^^

    Personne ne peux m'aider?

Discussions similaires

  1. Google Map API V2 calculer une distance proche
    Par ppost dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 28/04/2014, 08h50
  2. Google Map - API Java ?
    Par onlytoine dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/04/2008, 11h25
  3. Utilisation de la Google Maps API ?
    Par [ZiP] dans le forum Web & réseau
    Réponses: 4
    Dernier message: 04/09/2007, 22h26
  4. Google Map API --> Javascript et code behind C#
    Par bridel dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/01/2007, 21h07
  5. google map api
    Par raphs43 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2006, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo