tu ne calcule la carte qu'une fois , tu enregistre le fichier generé dans un fichier html et tu stocke une date de validité
si la date actuelle < date validité tu retourne brutalement la page mise en cache , sinon tu fais tes appels a la bdd
sinon, j'ai eu a faire une carte d'interventions en cours :
- j'ia mis la carte en background
- je place des icones en position absolue par dessus
ce qui fait que j'ai une resolution de 1px par 1px et que le code est assez leger
mon code ( PHP + SQL Server ) ressemble à ça :
Code :
- <html>
- <head>
- <META HTTP-EQUIV=Refresh CONTENT="5000; URL=<?php print $PHP_SELF ?>">
- <link rel="stylesheet" href="./design/css/6.css" title="6" type="text/css" media="screen,projection">
- <style>
- * {margin:0;padding:0}
- </style>
- <script>
- function allume(id){
- document.getElementById(id).style.backgroundColor='#7496E2';
- document.getElementById(id).style.color='white';
- }
- function eteint(id){
- document.getElementById(id).style.backgroundColor='white';
- document.getElementById(id).style.color='black';
- }
- </script>
- </head>
- <body>
- <img src="./design/images/SDIS71/carte.gif">
- <?
- if(mssql_num_rows($result)){
- echo '<table class="liste" >';
- echo '<tr class="titre"><th>Heure d\'appel</th><th>Nature</th><th>Ville</th></tr>';
- $i = 0 ;
- while(list($depart,$arrivee,$nature,$X,$Y,$ville) = mssql_fetch_row($result)){
- $i++;
- list($x,$y) = getPositionOnPicture($X,$Y);
- echo '<img src="./design/images/SDIS71/etoile.gif" STYLE="position:absolute;left:'.$x.'px;top:'.$y.'px;" onMouseOver="allume(\''.$i.'\');" onMouseOut="eteint(\''.$i.'\');">';
- $X -=791131;
- $Y -= 2149056;
- echo '<tr id="'.$i.'"><td>'.$depart.'</td><td>'.$nature.'</td><td>'.$ville.'</td></tr>';
- }
- echo"</table>";
- echo '<h3 STYLE=" margin-top:10px;;width:100p%;text-align:center;"> il y a '.mssql_num_rows($result).' intervention en cours</h3>';
- }
- ?>
- </body>
- </html>
|
getPositionOnPicture est une fonction qui fait la mise à l'echelle entre les coordoonées de ma base et celle sur mon image ( translation + homotetie)
Message édité par flo850 le 04-12-2006 à 14:01:13
---------------