Tracer un polygone
Tracer une droite
Tracer une courbe
Tracer un cercle
Écrire du texte
Add text on canvas
Draw text on canvas
Exemple ATMO
CSV
ajax.php
# Le polluant 22 a la valeur 39.94 le 11 mai 2016
22,39.94,11,5,2016
1,69.44,11,5,2016
3,292,11,5,2016
1,26,1,5,2016
<?php // Voir une année ============================================================== if(isset($_GET['voir']) && $_GET['voir'] && isset($_GET['y']) && $_GET['y'] != ''){ $mois = intval($_GET['voir']); $an = intval($_GET['y']); if (($fp = fopen("donnees", "r")) !== FALSE) { while (($t = fgetcsv($fp, 1000, ",")) !== FALSE){ // SELECT * FROM table if($t[4] != $an || $t[3] != $mois) continue; // WHERE an = a AND mois = y echo $t[0].';'.$t[1].';'.$t[2].';'.$t[3].';'.$t[4]."\n"; } fclose($fp); } } // ============================================================================= // Remplit un tableau v de valeurs à traver et l'envoie au client au format CSV // Fait le total de toutes les entrée, c'est pas opmtimisé pour la publication else if(isset($_GET['cat']) && isset($_GET['y']) && $_GET['y'] != ''){ $cat = intval($_GET['cat']); $an = intval($_GET['y']); $v = array();// le total de chaque mois, il y en a 12 ou plus // $v = [ //idmois, an, total // [4, 2016, 665], // [5, 2016, 744], // ... //]; $nbmois = 12;// combien de mois tracer, 12 par défaut sauf si if($an==1970) { // 'toutes les années' est sélectionné: les 8 mois de 2016 + (année actuelle-2016)*12 + nombre de mois de cette année $m = 5; $annee = 2016; // les valeurs commencent en mai 2016 $v = array(); $nbannees = (date('Y')-2016); $nbmois = 8 + $nbannees*12 + (-12+date('m'));// 8 mois en 2016 + les années + mois actuel for($n=0;$n<$nbmois;$n++){ $v[$n] = array($m, $annee,0); $m++; if($m==13){$m=1;$annee++;} } } else{ $v[0] = array('',0); if($an=='2016') { $nbmois = 8; for($n=1;$n<=$nbmois;$n++){ $i=$n+4; if($i>12)$i=1; $v[$n] = array($i,2016,0); //echo '//$v['.$n.']='.$lesdouzemois[$i]."\n"; } } else { for($n=1;$n<=$nbmois;$n++){ $v[$n] = array($n,$an,0); } } } // 0 1 2 3 4 // 7,15.3,15,10,2020 // catégorie,montant,jour,mois,an //$nbvaleurs=0; // nombre d'entrées correspondant aux critères if (($fp = fopen("donnees", "r")) !== FALSE) { while (($t = fgetcsv($fp, 1000, ",")) !== FALSE){ // SELECT * FROM table if($t[4] != $an && $an,='1970') continue; // WHERE année = a AND année != 1970 if($t[0] != $cat && $cat,=0) continue; // AND catégorie = v AND categorie !=0 $val = abs($t[1]); $mois = intval($t[3]); if($an=='1970') { // stocke tout, 75 mois ou plus // retrouve le numéro de mois c'est l'index dans $v. 5/2016 1er mois index 0; 2/2017 index 9 etc // combien d'années de différence? $annees = intval($t[4] - 2016); // combien de mois de différence? if($annees>0) { if($mois > 5) $diffmois = $mois - 5 + 12*($annees); else $diffmois = 12-5 + $mois + 12*($annees-1); } else{ if($mois > 5) $diffmois = $mois - 5; else $diffmois = 5 - $mois; } $v[$diffmois][2] += $val; } else { if($an=='2016') {$i=$mois-4; $v[$i][2] += $val;} else $v[$mois][2] += $val; } } fclose($fp); } // envoie les données CSV des points à tracer $start = ($an=='1970')?0:1; if($an,='1970') $nbmois++; for($n=$start; $n<$nbmois; $n++){ echo "{$v[$n][0]};{$v[$n][1]};{$v[$n][2]}\n"; } } ?>
98 lignes, 3304 octets. Balisé en 0.46 ms Vitesse : 7136 octets/ms