Calcule de distance entre deux villes

djallakhan Messages postés 7 Statut Membre -  
djallakhan Messages postés 7 Statut Membre -
Bonjour,

J'aimerai créer une page html / php qui calcule la distance entre deux villes ( Un tableau ou je dois mettre mes données

exemple : Case 1 = Ville départ , case 2 = ville destination, case 3 = Kilomètres

j'ai croisé un site qui utilise le même système que je cherche ! mais le code est crypté ! impossible a savoir comment il a fait :

le site : http://www.transportbaf.com/distances0.php

merci à l'avance

1 réponse

  1. Konseil Messages postés 641 Date d'inscription   Statut Membre Dernière intervention   434
     
    Salut, tu peux utiliser Google Map Api, le nombre de requêtes quotidienne est limité à 25 000 je crois, au delà les requêtes sont désactivées où il faut passer à la version payante.
    0
    1. djallakhan Messages postés 7 Statut Membre
       
      Salut , j'ai une liste sur laquelle j'aimerai travailler, par exemple, le départ est toujours par un seul point : POINT X - Destination ( 48 Points aux choix )

      Les résultats, je dois les ajoutés manuellement si c'est possible

      merci
      0
    2. Konseil Messages postés 641 Date d'inscription   Statut Membre Dernière intervention   434
       
      Regarde cette url par exemple, la distance entre Paris et Marseilles en voiture.
      Clique ici

      ca te retourne:
      {
      "destination_addresses" : [ "Marseille, France" ],
      "origin_addresses" : [ "Paris, France" ],
      "rows" : [
      {
      "elements" : [
      {
      "distance" : {
      "text" : "775 km",
      "value" : 774930
      },
      "duration" : {
      "text" : "7 heures 2 minutes",
      "value" : 25297
      },
      "status" : "OK"
      }
      ]
      }
      ],
      "status" : "OK"
      }
      0
    3. djallakhan Messages postés 7 Statut Membre
       
      Merci !

      J'ai trouvé un code que je dois modifier

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <title>Afficher la distance entres 2 villes d'après un array associatif</title>
      <style type="text/css" media="all">
      .erreur {
      background: red;
      color: white;
      }
      .distance {
      background: green;
      color: white;
      }
      </style>
      </head>

      <body>

      <?php
      // pour éviter les affichage de "Notice..." (de simples remarques)
      error_reporting(E_ALL);

      $distances = array(
      "Lille" => array("Paris" => 221, "Nice" => 1154, "Brest" => 728, "Lyon" => 685),
      "Paris" => array("Nice" => 929, "Brest" => 595, "Lyon" => 460),
      "Nice" => array("Brest" => 1068, "Lyon" => 472),
      "Brest" => array("Lyon" => 1015)
      );

      /* si le formulaire a effectivement été envoyé */
      if ($_POST)
      {
      /* on créé un tableau qui contiendra les erreurs si il y en a */
      $erreurs = array();

      /* on récupère les valeurs */
      $depart = $_POST["depart"];
      $arrivee = $_POST["arrivee"];
      if ($depart == $arrivee) {$erreurs[] = "Vous devez choisir 2 villes différentes!";}

      /* on va détermine la distance */
      else // quand $depart != $arrivee
      {
      /* si $distances[$depart][$arrivee] n'est pas pas vide = une valeur existe */
      if(!empty($distances[$depart][$arrivee]))
      {
      $distance = $distances[$depart][$arrivee];
      }
      // quand $distances[$depart][$arrivee] n'existe pas,
      //il faut lire le tableau dans l'autre sens
      else
      {
      $distance = $distances[$arrivee][$depart];
      }
      }
      } // FIN du if ($_POST)
      ?>

      <h1>Afficher la distance séparant 2 villes d'après un tableau triangulaire</h1>

      <form method="post" action="">

      <?php
      if (!empty($erreurs)) // si il y a des erreurs, on les affiche
      {
      echo "<div class='erreur'>
      <p><strong>Erreurs</strong> :</p>
      <ul>";
      foreach ($erreurs as $valeur)
      {
      echo "<li>$valeur</li>n";
      }
      echo "</ul>
      </div>n";
      }
      ?>
      <p><label for="f_depart">Choisissez une ville de départ</label>
      <select name="depart" id="f_depart">
      <option value="Brest">Brest</option>
      <option value="Lille">Lille</option>
      <option value="Lyon">Lyon</option>
      <option value="Nice">Nice</option>
      <option value="Paris">Paris</option>
      </select></p>

      <p><label for="f_arrivee">Choisissez une ville d'arrivée</label>
      <select name="arrivee" id="f_arrivee">
      <option value="Brest">Brest</option>
      <option value="Lille">Lille</option>
      <option value="Lyon">Lyon</option>
      <option value="Nice">Nice</option>
      <option value="Paris">Paris</option>
      </select></p>

      <p><input type="submit" value="Afficher la distance entre les deux villes" /></p>
      </form>

      <?php
      // si le formulaire a été envoyé et qu'il n'y a pas d'erreurs
      if ($_POST && empty($erreurs))
      {
      echo "<p class='distance'>
      La distance entre $depart et $arrivee vaut <strong>$distance</strong> km.</p>";
      }
      ?>

      </body>
      </html>
      0
    4. Konseil Messages postés 641 Date d'inscription   Statut Membre Dernière intervention   434
       
      Oui tu peux faire ça, si ton point de départ est fixe, tu as juste 49 distances à calculer.
      0
    5. djallakhan Messages postés 7 Statut Membre
       
      Merci bcp pour ton aide, je vais essayé de faire cela, même si je ne sais pas ou commenc, puisque je suis novice ;(
      0