Thanks Adil,<br>I will take a look on it and let see what I will come up with.<br>Merci<br>Cleber<br><br>P.S. I will keep in touch if I have any doubt if you don&#39;t mind.<br><br>------------------------------------<br><br>
<div class="gmail_quote">On Tue, Feb 1, 2011 at 7:12 PM,  <span dir="ltr">&lt;<a href="mailto:pgrouting-users-request@lists.osgeo.org">pgrouting-users-request@lists.osgeo.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Send Pgrouting-users mailing list submissions to<br>
        <a href="mailto:pgrouting-users@lists.osgeo.org">pgrouting-users@lists.osgeo.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://lists.osgeo.org/mailman/listinfo/pgrouting-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/pgrouting-users</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:pgrouting-users-request@lists.osgeo.org">pgrouting-users-request@lists.osgeo.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:pgrouting-users-owner@lists.osgeo.org">pgrouting-users-owner@lists.osgeo.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of Pgrouting-users digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Re : [pgrouting-users] pgrouting - Driving Direction -<br>
      foss4g2010,       WORKSHOP (Adil BOUMAZOUED)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Tue, 1 Feb 2011 18:12:10 +0000<br>
From: Adil BOUMAZOUED &lt;<a href="mailto:boumazoued@gmail.com">boumazoued@gmail.com</a>&gt;<br>
Subject: Re : [pgrouting-users] pgrouting - Driving Direction -<br>
        foss4g2010,     WORKSHOP<br>
To: <a href="mailto:pgrouting-users@lists.osgeo.org">pgrouting-users@lists.osgeo.org</a><br>
Message-ID:<br>
        &lt;<a href="mailto:AANLkTimHofmC6TXUgSP-W3pw4DnM8XK9Y%2BBb1kb1K8rP@mail.gmail.com">AANLkTimHofmC6TXUgSP-W3pw4DnM8XK9Y+Bb1kb1K8rP@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
<br>
hi,<br>
i hope this code can help you. it s not complete and not optimised<br>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
&lt;html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>&quot;&gt;<br>
<br>
&lt;?php<br>
<br>
if ( extension_loaded(&#39;pgsql&#39;) != 1)<br>
{<br>
    switch (PHP_OS)<br>
    {<br>
<br>
  case &quot;WINNT&quot;: if (!extension_loaded(&#39;pgsql&#39;))  dl(&quot;php_pgsql.dll&quot;);<br>
                    break;<br>
      default:  if (!extension_loaded(&#39;pgsql&#39;))  dl(&quot;php_pgsql.so&quot;);<br>
               break;<br>
  }<br>
}<br>
<br>
//=========================================<br>
<br>
// includes du fichier fonctions<br>
//=========================================<br>
require &#39;connexion.php&#39;;<br>
<br>
<br>
function ConvertTemps ($temps) {<br>
if ($temps&lt;60) {<br>
$temps=round($temps,0);<br>
$msg= $temps.&#39;s&#39;;<br>
}<br>
if ($temps&gt;=60 &amp;&amp; $temps&lt;3600) {<br>
$temps=round($temps,0);<br>
$temps_s=$temps % 60;<br>
$temps_mn = ($temps - $temps_s)/60;<br>
$msg= $temps_mn.&#39;mn&#39;.$temps_s.&#39;s&#39;;<br>
}<br>
if ($temps&gt;=3600) {<br>
$temps=round($temps,0);<br>
$temps_s=$temps % 3600;<br>
$temps_h=($temps - $temps_s)/3600;<br>
if ($temps_s&gt;=60) {<br>
$temps_s=$temps % 60;<br>
$temps_mn = ($temps - $temps_s)/60;<br>
$msg= $temps_h.&#39;h&#39;.$temps_mn.&#39;mn&#39;.$temps_s.&#39;s&#39;;<br>
} else {<br>
$msg= $temps_h.&#39; h00mn &#39;.$temps_s.&#39;s&#39;;<br>
}<br>
}<br>
return $msg;<br>
}<br>
<br>
function ConvertDistance ($longueur) {<br>
$longueur=round($longueur,0);<br>
if ($longueur&gt;=1000) {<br>
$longueur = round($longueur,0);<br>
$longueur_metre=$longueur % 1000;<br>
$longueur_km = ($longueur - $longueur_metre)/1000;<br>
$msg= $longueur_km.&#39;km&#39;.$longueur_metre.&#39;m&#39;;<br>
} else {<br>
$msg= $longueur.&#39;m&#39;;<br>
}<br>
return $msg;<br>
}<br>
<br>
<br>
function direction($x1,$y1,$x2,$y2,$x3,$y3,$x4,$y4,$typ)<br>
{<br>
<br>
$pi=pi();<br>
$Gisement=100000;<br>
$Gisement1=100000;<br>
$dx=1000000*($x2-$x1);<br>
$dy=1000000*($y2-$y1);<br>
<br>
if (($dx==0)&amp;&amp;($dy==0))<br>
{<br>
$Gisement=0;<br>
}<br>
if (($dy==0)&amp;&amp;($dx&gt;0))<br>
{<br>
$Gisement=100;<br>
}<br>
if (($dy==0)&amp;&amp;($dx&lt;0))<br>
{<br>
$Gisement=300;<br>
}<br>
<br>
if (($Gisement!=0)&amp;&amp;($Gisement!=100)&amp;&amp;($Gisement!=300))<br>
{<br>
$di = atan(abs($dx/$dy))*200/$pi;<br>
if (($dx&gt;=0)&amp;&amp;($dy&lt;0)) {<br>
$di=200-$di;<br>
}<br>
 if (($dx&lt;=0)&amp;&amp;($dy&lt;0)) {<br>
$di=200+$di;<br>
}<br>
 if (($dx&lt;=0)&amp;&amp;($dy&gt;0)) {<br>
$di=400-$di;<br>
}<br>
 $Gisement=$di;<br>
}<br>
<br>
$dx=1000000*($x3-$x4);<br>
$dy=1000000*($y3-$y4);<br>
<br>
if (($dx==0)&amp;&amp;($dy==0))<br>
{<br>
$Gisement1=0;<br>
}<br>
if (($dy==0)&amp;&amp;($dx&gt;0))<br>
{<br>
$Gisement1=100;<br>
}<br>
if (($dy==0)&amp;&amp;($dx&lt;0))<br>
{<br>
$Gisement1=300;<br>
}<br>
<br>
if (($Gisement1!=0)&amp;&amp;($Gisement1!=100)&amp;&amp;($Gisement1!=300))<br>
{<br>
$di = atan(abs($dx/$dy))*200/$pi;<br>
if (($dx&gt;=0)&amp;&amp;($dy&lt;0)) {<br>
$di=200-$di;<br>
}<br>
if (($dx&lt;=0)&amp;&amp;($dy&lt;0)) {<br>
$di=200+$di;<br>
}<br>
if (($dx&lt;=0)&amp;&amp;($dy&gt;0)) {<br>
$di=400-$di;<br>
}<br>
$Gisement1=$di;<br>
}<br>
<br>
$g21=$Gisement;<br>
$g23=$Gisement1;<br>
$dir=-$g23+$g21+200;<br>
if ($dir&gt;200) {<br>
$dir = $dir-400;<br>
}<br>
if ($dir&lt;-200) {<br>
$dir = $dir+400;<br>
}<br>
<br>
if ($dir&gt;=-10 AND $dir&lt;=10) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/21.gif&gt; Continuer tout<br>
droit&quot;;<br>
}<br>
if ($dir&gt;=-50 AND $dir&lt;-10) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/22.gif&gt; Serrer à droite&quot;;<br>
}<br>
if ($dir&gt;=-110 AND $dir&lt;-50) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/22.gif&gt; Tourner à droite&quot;;<br>
}<br>
if ($dir&gt;=-150 AND $dir&lt;-100) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/22.gif&gt;Tourner trop serrer à<br>
droite&quot;;<br>
}<br>
if ($dir&gt;=-200 AND $dir&lt;-150) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/22.gif&gt;Faite demi tour à<br>
droite&quot;;<br>
}<br>
if ($dir&gt;10 AND $dir&lt;=50) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/24.gif&gt;Serrer à gauche&quot;;<br>
}<br>
if ($dir&gt;50 AND $dir&lt;=110) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/24.gif&gt;Tourner à gauche&quot;;<br>
}<br>
if ($dir&gt;110 AND $dir&lt;=150) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/24.gif&gt;Tourner trop serrer à<br>
gauche&quot;;<br>
}<br>
if ($dir&gt;150 AND $dir&lt;=200) {<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/24.gif&gt;Faite demi tour à<br>
gauche&quot;;<br>
}<br>
 if($typ==1)<br>
{<br>
$msg=&quot;&lt;IMG width=32 height=32 SRC=img/roadmap/10.gif&gt; Prendre le Rond Point<br>
: &quot;;<br>
}<br>
RETURN $msg;<br>
}<br>
<br>
<br>
<br>
<br>
<br>
<br>
  $counter = $pathlength = 0;<br>
<br>
  // Retrieve start point<br>
  $start = split(&#39; &#39;,$_REQUEST[&#39;startpoint&#39;]);<br>
  $startPoint1 = array($start[0], $start[1]);<br>
$txtStart = $_REQUEST[&#39;txtstartpoint&#39;];<br>
$txtEnd = $_REQUEST[&#39;txtendpoint&#39;];<br>
  //echo $_REQUEST[&#39;startpoint&#39;];<br>
<br>
  // Retrieve end point<br>
  $end = split(&#39; &#39;,$_REQUEST[&#39;finalpoint&#39;]);<br>
  $endPoint1 = array($end[0], $end[1]);<br>
//echo $_REQUEST[&#39;finalpoint&#39;];<br>
  // Find the nearest edge<br>
  $startEdge = findNearestEdge($startPoint1);<br>
  $endEdge   = findNearestEdge($endPoint1);<br>
<br>
  // FUNCTION findNearestEdge<br>
  function findNearestEdge($lonlat) {<br>
<br>
    // Connect to database<br>
  $con  = pg_connect(&quot;host=&quot;.PG_HOST.&quot;<br>
                        dbname=&quot;.PG_DB.&quot;<br>
                        user=&quot;.PG_USER.&quot;<br>
                        password=&quot;.PG_PASSWORD.&quot;&quot;);<br>
<br>
    //$con = pg_connect(&quot;dbname=&quot;.PG_DB.&quot; host=&quot;.PG_HOST.&quot; user=&quot;.PG_USER.&quot;<br>
password=&quot;.PG_PASSWORD);<br>
    $sql = &quot;SELECT gid, source, target, the_geom,<br>
 distance(the_geom, GeometryFromText(<br>
                  &#39;POINT(&quot;.$lonlat[0].&quot; &quot;.$lonlat[1].&quot;)&#39;, -1)) AS dist<br>
            FROM &quot;.TABLE.&quot;<br>
            WHERE the_geom &amp;&amp; setsrid(<br>
                  &#39;BOX3D(&quot;.($lonlat[0]-0.1).&quot;<br>
                         &quot;.($lonlat[1]-0.1).&quot;,<br>
                         &quot;.($lonlat[0]+0.1).&quot;<br>
                         &quot;.($lonlat[1]+0.1).&quot;)&#39;::box3d, -1)<br>
            ORDER BY dist LIMIT 1&quot;;<br>
  //echo $sql;<br>
    $query = pg_query($con,$sql);<br>
<br>
    $edge[&#39;gid&#39;]      = pg_fetch_result($query, 0, 0);<br>
    $edge[&#39;source&#39;]   = pg_fetch_result($query, 0, 1);<br>
    $edge[&#39;target&#39;]   = pg_fetch_result($query, 0, 2);<br>
    $edge[&#39;the_geom&#39;] = pg_fetch_result($query, 0, 3);<br>
<br>
    // Close database connection<br>
    pg_close($con);<br>
<br>
    return $edge;<br>
  }<br>
<br>
  // Select the routing algorithm<br>
  switch($_REQUEST[&#39;method&#39;]) {<br>
<br>
    case &#39;SPD&#39; : // Shortest Path Dijkstra<br>
<br>
      $sql = &quot;SELECT rt.gid, AsText(rt.the_geom) AS wkt,<br>
                   length(rt.the_geom) AS length, &quot;.TABLE.&quot;.id<br>
                FROM &quot;.TABLE.&quot;,<br>
                    (SELECT gid, the_geom<br>
                        FROM dijkstra_sp_delta(<br>
                            &#39;&quot;.TABLE.&quot;&#39;,<br>
                            &quot;.$startEdge[&#39;source&#39;].&quot;,<br>
                            &quot;.$endEdge[&#39;target&#39;].&quot;,<br>
                            0.01)<br>
                     ) as rt<br>
                WHERE &quot;.TABLE.&quot;.gid=rt.gid;&quot;;<br>
      break;<br>
<br>
    case &#39;SPA&#39; : // Shortest Path A*<br>
<br>
       $sql = &quot;SELECT rt.gid, AsText(rt.the_geom) AS wkt,<br>
                     &quot;.TABLE.&quot;.length, &quot;.TABLE.&quot;.id, &quot;.TABLE.&quot;.temps,<br>
&quot;.TABLE.&quot;.on, &quot;.TABLE.&quot;.typ, &quot;.TABLE.&quot;.id ,  &quot;.TABLE.&quot;.x1 as xs,<br>
 &quot;.TABLE.&quot;.y1 as ys,  &quot;.TABLE.&quot;.x2 as xe,  &quot;.TABLE.&quot;.y2 as ye<br>
                  FROM &quot;.TABLE.&quot;,<br>
                      (SELECT *<br>
                          FROM astar_sp_delta(<br>
                              &#39;&quot;.TABLE.&quot;&#39;,<br>
                              &quot;.$startEdge[&#39;source&#39;].&quot;,<br>
                              &quot;.$endEdge[&#39;target&#39;].&quot;,<br>
                              0.01)<br>
                       ) as rt<br>
                  WHERE &quot;.TABLE.&quot;.gid=rt.gid;&quot;;<br>
<br>
      break;<br>
<br>
    case &#39;SPS&#39; : // Shortest Path Shooting*<br>
if ($_REQUEST[&#39;mode&#39;]==1) {<br>
$sql = &quot;SELECT rt.gid, AsText(rt.the_geom) AS wkt,<br>
                     length(rt.the_geom) AS length, rt.length, rt.temps,<br>
rt.on, rt.typ, &quot;.TABLE.&quot;.id , rt.xs, rt.ys, rt.xe, <a href="http://rt.ye" target="_blank">rt.ye</a><br>
                  FROM &quot;.TABLE.&quot;,<br>
                      (SELECT a.gid, a.the_geom, b.temps, b.on, b.typ ,<br>
b.length as length, b.x1 as xs, b.y1 as ys, b.x2 as xe, b.y2 as ye<br>
                          FROM shootingstar_sp(<br>
                              &#39;&quot;.TABLE.&quot;&#39;,<br>
                              &quot;.$startEdge[&#39;gid&#39;].&quot;,<br>
                              &quot;.$endEdge[&#39;gid&#39;].&quot;,<br>
                              0.01, &#39;length&#39;,true, false) a, roads b where<br>
a.gid=b.gid<br>
                       ) as rt<br>
                  WHERE &quot;.TABLE.&quot;.gid=rt.gid;&quot;;<br>
<br>
<br>
  } else {<br>
$sql = &quot;SELECT rt.gid, AsText(rt.the_geom) AS wkt,<br>
                     length(rt.the_geom) AS length, rt.length, rt.temps,<br>
rt.on, rt.typ, &quot;.TABLE.&quot;.id , rt.xs, rt.ys, rt.xe, <a href="http://rt.ye" target="_blank">rt.ye</a><br>
                  FROM &quot;.TABLE.&quot;,<br>
                      (SELECT a.gid, a.the_geom, b.temps, b.on, b.typ ,<br>
b.length as length, b.x1 as xs, b.y1 as ys, b.x2 as xe, b.y2 as ye<br>
                          FROM shootingstar_sp(<br>
                              &#39;&quot;.TABLE.&quot;&#39;,<br>
                              &quot;.$startEdge[&#39;gid&#39;].&quot;,<br>
                              &quot;.$endEdge[&#39;gid&#39;].&quot;,<br>
                              0.01, &#39;temps&#39;,true, false) a, roads b where<br>
a.gid=b.gid<br>
                       ) as rt<br>
                  WHERE &quot;.TABLE.&quot;.gid=rt.gid;&quot;;<br>
<br>
  }<br>
  break;<br>
<br>
  } // close switch<br>
//echo $sql;<br>
  // Database connection and query<br>
  $dbcon = pg_connect(&quot;host=&quot;.PG_HOST.&quot;<br>
                        dbname=&quot;.PG_DB.&quot;<br>
                        user=&quot;.PG_USER.&quot;<br>
                        password=&quot;.PG_PASSWORD.&quot;&quot;);<br>
<br>
  $query = pg_query($dbcon,$sql);<br>
<br>
  // Return route as html table<br>
<br>
<br>
$xml1  .= &quot;&lt;style type=&#39;text/css&#39;&gt;&quot;;<br>
$xml1  .= &quot;a:link {&quot;;<br>
$xml1  .= &quot; color: #FFCC00;&quot;;<br>
$xml1  .= &quot;}&quot;;<br>
$xml1  .= &quot;a:visited {&quot;;<br>
$xml1  .= &quot; color: #FFCC00;&quot;;<br>
$xml1  .= &quot;}&quot;;<br>
$xml1  .= &quot;.style1 {font-size: 12px;font-family: Verdana, Arial, Helvetica,<br>
sans-serif;font-weight: bold;}&quot;;<br>
$xml1  .= &quot;.style2 {font-family: Verdana, Arial, Helvetica,<br>
sans-serif;font-size: 12px;}&quot;;<br>
$xml1  .= &quot;.style3 {color: #808080}&quot;;<br>
$xml1  .= &quot;&lt;/style&gt;&quot;;<br>
echo $xml1;<br>
//echo &quot;depart &quot;.$startEdge[&#39;gid&#39;].&quot; -------&lt;p&gt;&quot;;<br>
$xml .= &quot;sql=&quot;.$sql.&quot; fin de la requête&quot;;<br>
  $xml .= &quot;&lt;table width=&#39;100%&#39; border=&#39;2&#39; cellpadding=&#39;0&#39; cellspacing=&#39;1&#39;<br>
bordercolor=&#39;#FF9F00&#39; bgcolor=&#39;#FFFFFF&#39;&gt;&quot;;<br>
  $xml .=&quot;&lt;tr bordercolor=&#39;#C0C0C0&#39;&gt;&quot;;<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;Etape&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;Id Tronçon&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;length Etape&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;length Cumulé&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;Temps moyen&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
  $xml .= &quot;&lt;td&gt;&lt;strong&gt;Nom de la Rue&lt;/strong&gt;&lt;/td&gt;&quot;;<br>
  $xml .=&quot;&lt;/tr&gt;&quot;;<br>
<br>
  // Add edges to XML file<br>
  while($edge=pg_fetch_assoc($query)) {<br>
<br>
    $pathlength += $edge[&#39;length&#39;];<br>
$xml .=&quot;&lt;tr bordercolor=&#39;#C0C0C0&#39;&gt;&quot;;<br>
    $xml .= &quot;&lt;td&gt; &quot;.++$counter.&quot;&lt;/td&gt;&quot;;<br>
    $xml .= &quot;&lt;td&gt; &quot;.$edge[&#39;gid&#39;].&quot;&lt;/td&gt;&quot;;<br>
//déclaration des tableaux pour organisation de la feuille du route<br>
$ii[$counter] = $edge[&#39;gid&#39;];<br>
$startPoint[$counter] = array($edge[&#39;xs&#39;], $edge[&#39;ys&#39;]);<br>
$endPoint[$counter] = array($edge[&#39;xe&#39;], $edge[&#39;ye&#39;]);<br>
$rue[$counter] = $edge[&#39;on&#39;];<br>
$x1[$counter] = $edge[&#39;xs&#39;];<br>
$y1[$counter] = $edge[&#39;ys&#39;];<br>
$x2[$counter] = $edge[&#39;xe&#39;];<br>
$y2[$counter] = $edge[&#39;ye&#39;];<br>
$length[$counter]=$edge[&#39;length&#39;];<br>
$temps[$counter]=3600*40/(1000*$edge[&#39;length&#39;]);<br>
$type[$counter]=$edge[&#39;typ&#39;];<br>
<br>
//fin des déclaration<br>
<br>
$temps1=3600*40/(1000*$edge[&#39;length&#39;]);<br>
$temps_trajet +=$temps1;<br>
if ($temps1&gt;60) {<br>
$temps1=$temps1/60;<br>
$temps2=round($temps1,0).&quot; mn&quot;;<br>
}<br>
if ($temps1&gt;3600) {<br>
$temps1=$temps1/3660;<br>
$temps2=round($temps1,0).&quot; h&quot;;<br>
}<br>
if ($temps1&lt;60) {<br>
$temps1=$temps1;<br>
$temps2=round($temps1,0).&quot; s&quot;;<br>
}<br>
<br>
$xml .= &quot;&lt;td&gt; &quot;.round($edge[&#39;length&#39;],2).&quot; m&lt;/td&gt;&quot;;<br>
    $xml .= &quot;&lt;td&gt; &quot;.round(($pathlength),2).&quot; m&lt;/td&gt;&quot;;<br>
$xml .= &quot;&lt;td&gt; &quot;.$edge[&#39;wkt&#39;].&quot;&lt;/td&gt;&quot;;<br>
//pour vérifier le changement du rue par son nom<br>
$on[$i+1]=$edge[&#39;on&#39;];<br>
$j = $i;<br>
$i +=1;<br>
if ($on[$i] != $on[$j])<br>
{<br>
$xml .= &quot;&lt;td&gt; &lt;img src=&#39;img/roadmap/2.png&#39;&gt;&quot;.$edge[&#39;on&#39;].&quot;.&lt;/td&gt;&quot;;<br>
}<br>
else {<br>
$xml .= &quot;&lt;td&gt; &quot;.$edge[&#39;on&#39;].&quot;.&lt;/td&gt;&quot;;<br>
}<br>
<br>
$xml .=&quot;&lt;/tr&gt;&quot;;<br>
  }<br>
  $xml .= &quot;&lt;/table&gt;&quot;;<br>
  // Close database connection<br>
  pg_close($dbcon);<br>
<br>
echo &quot;&lt;h3 style=&#39;color:#2e585c;&#39;&gt;Feuille de route&lt;/h3&gt;&quot;;<br>
<br>
  // Return routing result<br>
  //header(&#39;Content-type: text/xml&#39;,true);<br>
echo &quot;&lt;div style=&#39;width:250px; float:left; border-left:1px solid #CCCCCC;<br>
 border-right:1px solid #CCCCCC; padding:0 10px;&#39;&gt;&quot;;<br>
<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;&quot;.htmlentities(&quot;Résumé du Trajet&quot;).&quot;&lt;/span&gt;&lt;br&gt;&quot;;<br>
if ($_REQUEST[&#39;method&#39;]==&#39;SPA&#39;)<br>
{<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;&quot;.htmlentities(&quot;Mode de Navigation :<br>
&quot;).&quot;&lt;/span&gt;&lt;span<br>
class=&#39;style3&#39;&gt;&quot;.htmlentities(&quot;Piéton&quot;).&quot;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&quot;;<br>
}<br>
if ($_REQUEST[&#39;method&#39;]==&#39;SPS&#39;)<br>
{<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;Mode de Navigation :&lt;/span&gt;&lt;span<br>
class=&#39;style3&#39;&gt;Voiture&lt;/span&gt;&lt;br&gt;&quot;;<br>
if ($_REQUEST[&#39;mode&#39;]==1)<br>
{<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;&quot;.htmlentities(&quot;Type d&#39;itinéraire :<br>
&quot;).&quot;&lt;/span&gt;&lt;span class=&#39;style3&#39;&gt;Le plus court&lt;/span&gt;&lt;br&gt;&quot;;<br>
} else {<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;&quot;.htmlentities(&quot;Type d&#39;itinéraire :<br>
&quot;).&quot;&lt;/span&gt;&lt;span class=&#39;style3&#39;&gt;Le plus Rapide&lt;/span&gt;&lt;br&gt;&quot;;<br>
}<br>
}<br>
 echo &quot;&lt;span class=&#39;style3&#39;&gt;Longueur du Trajet : &lt;/span&gt;&lt;span<br>
class=&#39;style3&#39;&gt;&quot;;<br>
echo ConvertDistance(round(($pathlength),0)).&quot;&lt;/span&gt;&lt;br&gt;&quot;;<br>
echo &quot;&lt;span class=&#39;style3&#39;&gt;Temps total du Trajet : &lt;/span&gt;&lt;span<br>
class=&#39;style3&#39;&gt;&quot;;<br>
echo ConvertTemps($temps_trajet).&quot;&lt;/span&gt;&lt;/br&gt;&quot;;<br>
echo &quot;&lt;/div&gt;&quot;;<br>
echo &quot;&lt;/br&gt;&quot;;<br>
echo &quot;&lt;/br&gt;&quot;;<br>
echo &quot;&lt;/br&gt;&quot;;<br>
echo &quot;&lt;/br&gt;&quot;;<br>
  //echo $xml;<br>
//  echo &quot;&lt;p&gt;_______________________________________________&lt;p&gt;&quot;;<br>
//  echo $counter.&quot;&lt;p&gt;&quot;;<br>
//   echo &quot;_______________________________________________&lt;p&gt;&quot;;<br>
//for($i=1; $i&lt;=$counter ; $i++) {<br>
//echo &quot;&amp;&amp;startPoint[&quot;.$i.&quot;] = array(&quot;.$x1[$i].&quot;,&quot;.$y1[$i].&quot;);&lt;p&gt;&quot;;<br>
//echo &quot;&amp;&amp;endPoint[&quot;.$i.&quot;] = array(&quot;.$x2[$i].&quot;,&quot;.$y2[$i].&quot;);&lt;p&gt;&quot;;<br>
//echo &quot;&amp;&amp;rue[&quot;.$i.&quot;] = |&quot;.$rue[$i].&quot;|;&lt;p&gt;&quot;;<br>
//}<br>
<br>
  //recherche du premier tronçon de la route<br>
for($i=1; $i&lt;=$counter ; $i++) {<br>
  if ($ii[$i]==$startEdge[&#39;gid&#39;]) {<br>
// echo &quot;&lt;script&gt;alert(&quot;.$startEdge[&#39;gid&#39;].&quot;);&lt;/script&gt;&quot;;<br>
  //stockage temporaire de la ligne n°1<br>
  $tt=$rue[1];<br>
  $st=$startPoint[1];<br>
  $se=$endPoint[1];<br>
  $ll= $length[1];<br>
  $tm= $temps[1];<br>
  $xxx1=$x1[1];<br>
  $xxx2=$x2[1];<br>
  $yyy1=$y1[1];<br>
  $yyy2=$y2[1];<br>
  $type_route=$type[1];<br>
  //Attribution de la ligne n° 1 au premier tronçon de la route<br>
  $rue[1]=$rue[$i];<br>
  $startPoint[1]=$startPoint[$i];<br>
  $endPoint[1]=$endPoint[$i];<br>
  $length[1]=$length[$i];<br>
  $temps[1]=$temps[$i];<br>
  $x1[1]=$x1[$i];<br>
  $x2[1]=$x2[$i];<br>
  $y1[1]=$y1[$i];<br>
  $y2[1]=$y2[$i];<br>
  $type[1]=$type[$i];<br>
  //attribution du tronçon n° i de l&#39;ex début de route par l&#39;exe premier<br>
enregistrement<br>
  $rue[$i]=$tt;<br>
  $startPoint[$i]=$st;<br>
  $endPoint[$i]=$se;<br>
  $length[$i]=$ll;<br>
  $temps[$i]=$tm;<br>
  $x1[$i]=$xxx1;<br>
  $x2[$i]=$xxx2;<br>
  $y1[$i]=$yyy1;<br>
  $y2[$i]=$yyy2;<br>
  $type[$i]=$type_route;<br>
  }<br>
 }<br>
<br>
 $i=1;<br>
 $j=1;<br>
 for($i=1; $i&lt;=$counter ; $i++)<br>
  {<br>
  for($j=$i+1; $j&lt;=$counter ; $j++)<br>
  {<br>
  if ($startPoint[$j]==$endPoint[$i])<br>
  {<br>
$T0=$startPoint[$j];<br>
$T1=$startPoint[$i+1];<br>
$T2=$endPoint[$j];<br>
$T3=$endPoint[$i+1];<br>
$T4=$rue[$j];<br>
$T5=$rue[$i+1];<br>
$T6=$length[$j];<br>
$T7=$length[$i+1];<br>
$T8=$temps[$j];<br>
$T9=$temps[$i+1];<br>
$T10=$x1[$j];<br>
$T11=$x1[$i+1];<br>
$T12=$y1[$j];<br>
$T13=$y1[$i+1];<br>
$T14=$x2[$j];<br>
$T15=$x2[$i+1];<br>
$T16=$y2[$j];<br>
$T17=$y2[$i+1];<br>
$T18=$type[$j];<br>
$T19=$type[$i+1];<br>
<br>
$startPoint[$j]=$T1;<br>
$startPoint[$i+1]=$T0;<br>
$endPoint[$j]=$T3;<br>
$endPoint[$i+1]=$T2;<br>
$rue[$j]=$T5;<br>
$rue[$i+1]=$T4;<br>
$length[$j]=$T7;<br>
$length[$i+1]=$T6;<br>
$temps[$j]=$T9;<br>
$temps[$i+1]=$T8;<br>
$x1[$j]=$T11;<br>
$x1[$i+1]=$T10;<br>
$y1[$j]=$T13;<br>
$y1[$i+1]=$T12;<br>
$x2[$j]=$T15;<br>
$x2[$i+1]=$T14;<br>
$y2[$j]=$T17;<br>
$y2[$i+1]=$T16;<br>
$type[$j]=$T19;<br>
$type[$i+1]=$T18;<br>
  }<br>
  }<br>
  }<br>
<br>
//////////////////////////////////////////////////////////<br>
  /////////////////////////////////////////////////////////////<br>
  ////////////////////////////////////////////////////////<br>
<br>
  for($i=0; $i&lt;=$counter ; $i++)<br>
    {<br>
  //assemblage des tronçons par nom des rues<br>
$comt_temp +=1;<br>
$temps_troncon += $temps[$i];<br>
$temps_cumule +=$temps[$i];<br>
$length_troncon +=$length[$i];<br>
$length_cumule +=$length[$i];<br>
  if ($rue[$i+1]!=$rue[$i])<br>
  {<br>
$etape +=1;<br>
if ($etape % 2 != 0) {<br>
//echo &quot;&lt;tr bgcolor=&#39;#B8E1F5&#39;&gt;&quot;;<br>
} else {<br>
//echo &quot;&lt;tr&gt;&quot;;<br>
}<br>
//echo &quot;&lt;td&gt;&lt;span class=&#39;style2&#39;&gt;&quot;.$etape.&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
 //echo &quot;&lt;td&gt;&lt;span class=&#39;style1&#39;&gt;&quot;;<br>
if ($i==1) {<br>
//echo &quot;&lt;IMG width=32 height=32 SRC=img/drapeau/11.gif&gt; Prendre &quot;;<br>
 } elseif ($i==$counter) {<br>
//echo &quot;&lt;IMG width=32 height=32 SRC=img/drapeau/12.gif&gt; Arrivé à &quot;;<br>
} else {<br>
 //echo direction($x1[$i-1],$y1[$i-1],$x1[$i],$y1[$i],$x1[$i+1],$y1[$i+1],<br>
$x1[$i+2],$y1[$i+2], $type[$i+1]);<br>
$direction[$i]=direction($x1[$i-1],$y1[$i-1],$x1[$i],$y1[$i],$x1[$i+1],$y1[$i+1],<br>
$x1[$i+2],$y1[$i+2], $type[$i+1]);<br>
}<br>
//echo $rue[$i].&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
$NomRue[$i]=$rue[$i];<br>
//echo &quot;&lt;td&gt;&lt;span class=&#39;style2&#39;&gt;&quot;;<br>
//echo ConvertDistance($length_troncon).&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
$DistanceTroncon[$i]=ConvertDistance($length_troncon);<br>
//echo &quot;&lt;td&gt;&lt;span class=&#39;style2&#39;&gt;&quot;;<br>
//echo ConvertDistance($length_cumule).&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
$DistanceCumul[$i]=ConvertDistance($length_cumule);<br>
//echo &quot;&lt;td&gt;&lt;span class=&#39;style2&#39;&gt;&quot;;<br>
//echo ConvertTemps($temps_troncon).&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
$TempsTroncon[$i]=ConvertTemps($temps_troncon);<br>
//echo &quot;&lt;td&gt;&lt;span class=&#39;style2&#39;&gt;&quot;;<br>
//echo ConvertTemps($temps_cumule).&quot;&lt;/span&gt;&lt;/td&gt;&quot;;<br>
$TempsCumul[$i]=ConvertTemps($temps_cumule);<br>
//echo &quot;&lt;/tr&gt;&quot;;<br>
//initialiser le compteur<br>
$comt_temp =0;<br>
$temps_troncon=0;<br>
$length_troncon=0;<br>
  }<br>
   }<br>
   //echo &quot;&lt;/table&gt;&quot;;<br>
echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0 10px;<br>
margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left; width:275px;&#39;&gt;&lt;img<br>
src=&#39;img/drapeau/14.png&#39;&gt;&quot;.htmlentities(&quot;Départ&quot;).&quot; :<br>
&quot;.$txtStart.&quot;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$direction[0].&quot;&lt;/div&gt;&quot;;<br>
   echo $DistanceTroncon[1].&quot;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left; width:275px;&#39;&gt; de<br>
&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$NomRue[1].&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.htmlentities(&quot;  &quot;).&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;p&gt;&quot;;<br>
   for($i=1; $i&lt;=$counter-2 ; $i++)<br>
    {<br>
echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0 10px;<br>
margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$direction[$i].&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
echo &quot;  &quot;;<br>
echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0 10px;<br>
margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$NomRue[$i+1].&quot;&lt;/div&gt;&quot;;<br>
echo $DistanceTroncon[$i].&quot;&lt;/div&gt;&quot;;<br>
//echo &quot;coucou&quot;;<br>
//echo &quot;&lt;p&gt;&quot;;<br>
}<br>
 echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0 10px;<br>
margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$direction[$counter-1].&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$direction[$i].&quot;&lt;/div&gt;&lt;/div&gt;&quot;;htmlentities(&quot; et vous arrivez<br>
à &quot;).&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left;<br>
width:275px;&#39;&gt;&quot;.$NomRue[$counter].&quot;&lt;/div&gt;&quot;;<br>
   echo $DistanceTroncon[$counter-1].&quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br>
   echo &quot;&lt;div style=&#39;background-color:#f0f0f0; color:#00519e; padding:0<br>
10px; margin-bottom:5px;&#39;&gt;&lt;div style=&#39;float:left; width:275px;&#39;&gt;&lt;img<br>
src=&#39;img/drapeau/15.png&#39;&gt;&quot;.htmlentities(&quot;Arrivé&quot;).&quot; :<br>
&quot;.$txtEnd.&quot;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&quot;;<br>
?&gt;<br>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href="http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20110201/58011936/attachment.html" target="_blank">http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20110201/58011936/attachment.html</a><br>

<br>
------------------------------<br>
<br>
_______________________________________________<br>
Pgrouting-users mailing list<br>
<a href="mailto:Pgrouting-users@lists.osgeo.org">Pgrouting-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/pgrouting-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/pgrouting-users</a><br>
<br>
<br>
End of Pgrouting-users Digest, Vol 29, Issue 2<br>
**********************************************<br>
</blockquote></div><br><br clear="all"><br>-- <br>Cléber D. Arruda<br>Kämnärsvägen 33C<br>226 46<br>Lund - Sweden<br>Phone +46737762526<br>E-mail: <a href="mailto:cleverdo@gmail.com" target="_blank">cleverdo@gmail.com</a><br>
<br>Peace and Love Always.<br><br>