Commit 0881e098 authored by Rinkio's avatar Rinkio

git branch

parent e8c456d7
......@@ -10,3 +10,4 @@ script/fixStation.py
templates_c/*
!templates_c/README.md
script/fixInseeStation.py
/script/velibLib.pyc
......@@ -822,12 +822,12 @@ function getCommunesCarte($idConso)
define('BORNES_OUI', 20);
$couleur_etat=array(
BORNES_NON+ETAT_INCONNU=>'mediumvioletred',
BORNES_NON+ETAT_TRAVAUX=>'darkred',
BORNES_NON+ETAT_OUVERTE=>'slateblue',
BORNES_OUI+ETAT_INCONNU=>'indigo',
BORNES_OUI+ETAT_TRAVAUX=>'darkorange',
BORNES_OUI+ETAT_OUVERTE=>'darkgreen'
BORNES_NON+ETAT_INCONNU=>'DodgerBlue',
BORNES_NON+ETAT_TRAVAUX=>'FireBrick',
BORNES_NON+ETAT_OUVERTE=>'Coral',
BORNES_OUI+ETAT_INCONNU=>'MediumOrchid',
BORNES_OUI+ETAT_TRAVAUX=>'DarkTurquoise',
BORNES_OUI+ETAT_OUVERTE=>'Green'
);
$nombre_etat=array(
......@@ -844,6 +844,7 @@ function getCommunesCarte($idConso)
//interprétation de l'état de la station 0=état non prévu
switch($station['state'])
{
case 'En travaux':
case 'Work in progress':
$etat = ETAT_TRAVAUX;
break;
......@@ -964,7 +965,7 @@ function getCommunesCarte($idConso)
'texte'=>'Stations en service ('.$nombre_etat[BORNES_OUI+ETAT_OUVERTE].')');
}
$svg = genererCarteSVG(800, 500, $liste_communes, 'commune.php?insee=', '', '', $objets);
$svg = genererCarteSVG(800, 500, $liste_communes, 'commune.php?insee=', '', '', $objets,2);
return $svg;
}
......
......@@ -48,7 +48,7 @@
*
*/
function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
$liens='',$info=array(),$couleur=array(),$objets=array())
$liens='',$info=array(),$couleur=array(),$objets=array(),$avm=0)
{
global $pdo;
......@@ -169,8 +169,11 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
/****** RECUPERATION DE LA LISTE DES COMMUNES VISIBLES SUR LA CARTE ***********/
//récupération des communes au moins partiellement sur la carte
$requete=$pdo->query('SELECT * FROM commune WHERE ouest<="'.$data_E.'"
AND est>="'.$data_W.'" AND nord>="'.$data_S.'" AND sud<="'.$data_N.'"');
//dont l'état autolib-velib métropole est au moins celui demandé
$requete=$pdo->query('SELECT * FROM commune WHERE avm>='.$avm.'
AND ouest<="'.$data_E.'" AND est>="'.$data_W.'"
AND nord>="'.$data_S.'" AND sud<="'.$data_N.'"');
$resultat=$requete->fetchAll(PDO::FETCH_ASSOC);
//détermination si les communes affichées sont dans la sélection ou pas (in)
......@@ -192,14 +195,21 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
//liste des styles
$svg.='<style type="text/css">'."\n";
//pas de pointillés autor des zones cliquables
$svg.="\t".'a {stroke:inherit;}'."\n";
$svg.="\t".'a:focus {outline-style:none;}'."\n";
//la commune survolée est en surbrillance
$svg.="\t".'path:hover {fill-opacity:1;}'."\n";
$svg.="\t".'.d75, .d78 {fill:Khaki}'."\n";
//couleurs des départememts
$svg.="\t".'.d75, .d95 {fill:Khaki}'."\n";
$svg.="\t".'.d77, .d92 {fill:SkyBlue}'."\n";
$svg.="\t".'.d78, .d94 {fill:GreenYellow}'."\n";
$svg.="\t".'.d91, .d93 {fill:LightCoral}'."\n";
$svg.="\t".'.d94, .d95 {fill:GreenYellow}'."\n";
//couleurs des objets
$svg.="\t".'.zone_bois {fill:Tan; stroke:none;}'."\n";
$svg.='</style>'."\n";
//fond de carte
......@@ -238,11 +248,24 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
$svg.='style="fill:'.$couleur[$ligne['insee']].';" ';
else
$svg.='class="d'.floor($ligne['insee']/1000).'" ';
$svg.='d="'.$ligne['contour'].'"/>'."\n";
//ajout des objets de la commune (bois, eau)
if($ligne['objets']!='')
{
//la liste est sous forme "style|contour¶style|contour¶…"
$liste=explode('¶',$ligne['objets']);
foreach($liste AS $element)
{
$el=explode('|',$element);
$svg.="\t\t\t".'<path class="zone_'.$el[0].'" d="'.$el[1].'"/>'."\n";
}
}
$svg.='d="M'.$ligne['contour'].'Z"/>'."\n";
//fermeture du lien s'il a été ouvert
if($liens!='')
$svg.="\t\t\t".'</a>'."\n";
}
}
$svg.="\t\t".'</g>'."\n";
......@@ -272,8 +295,20 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
$svg.='style="fill:'.$couleur[$ligne['insee']].';" ';
else
$svg.='class="d'.floor($ligne['insee']/1000).'" ';
$svg.='d="'.$ligne['contour'].'"/>'."\n";
//ajout des objets de la commune (bois, eau)
if($ligne['objets']!='')
{
//la liste est sous forme "style|contour¶style|contour¶…"
$liste=explode('¶',$ligne['objets']);
foreach($liste AS $element)
{
$el=explode('|',$element);
$svg.="\t\t\t".'<path class="zone_'.$el[0].'" d="'.$el[1].'"/>'."\n";
}
}
$svg.='d="M'.$ligne['contour'].'Z"/>'."\n";
//fermeture du lien s'il a été ouvert
if($liens!='')
$svg.="\t\t\t".'</a>'."\n";
......@@ -365,6 +400,15 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
$svg.='>'.$objet['texte'].'</text>'."\n";
break;
/****** AFFICHAGE DES OBJETS CONTOUR (référentiel géographique)****************/
case 'contour':
if(!isset($objet['contour'])) $objet['contour']='MZ';
$svg.='<g id="communes" transform="scale('.$largeur_f.','.$hauteur_f.') translate('.$dec_lon.','.$dec_lat.')" style="fill-opacity:0.5; stroke-width:'.$stroke.';">'."\n";
$svg.="\t".'<path d="'.$objet['contour'].'" style="fill:'.$objet['couleur'].'; stroke:lightgray;"';
$svg.='/>'."\n";
$svg.='</g>'."\n";
break;
/****** AFFICHAGE DES OBJETS POINT (objet par défaut)**************************/
default:
//valeurs par défaut des attributs des objets point
......@@ -377,14 +421,14 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
$y2=$y+$objet['taille']*0.2887;
$x2=$x+$objet['taille']*0.5;
$x3=$x-$objet['taille']*0.5;
$svg.="\t".'<polygon points="'.$x.' '.$y1.','.$x2.' '.$y2.','.$x3.' '.$y2.'" style="fill:'.$objet['couleur'].';"';
$svg.="\t".'<polygon points="'.$x.' '.$y1.','.$x2.' '.$y2.','.$x3.' '.$y2.'" style="stroke:black; stroke-width:0.4; fill:'.$objet['couleur'].';"';
if($objet['angle']!=0) $svg.=' transform="rotate('.$objet['angle'].','.$x.','.$y.')"';
$svg.='/>'."\n";
break;
case 'carre':
$y1=$y-$objet['taille']*0.5;
$x1=$x-$objet['taille']*0.5;
$svg.="\t".'<rect x="'.$x1.'" y="'.$y1.'" width="'.$objet['taille'].'" height="'.$objet['taille'].'" style="fill:'.$objet['couleur'].';"';
$svg.="\t".'<rect x="'.$x1.'" y="'.$y1.'" width="'.$objet['taille'].'" height="'.$objet['taille'].'" style="stroke:black; stroke-width:0.4; fill:'.$objet['couleur'].';"';
if($objet['angle']!=0) $svg.=' transform="rotate('.$objet['angle'].','.$x.','.$y.')"';
$svg.='/>'."\n";
break;
......@@ -432,7 +476,7 @@ function genererCarteSVG($largeur_carte=800,$hauteur_carte=600,$filtre=0,
break;
default: $r=$objet['taille']*0.5;
$svg.="\t".'<circle cx="'.$x.'" cy="'.$y.'" r="'.$r.'" style="fill:'.$objet['couleur'].';"/>'."\n";
$svg.="\t".'<circle cx="'.$x.'" cy="'.$y.'" r="'.$r.'" style="stroke:black; stroke-width:0.4; fill:'.$objet['couleur'].';"/>'."\n";
break;
}
break;
......
......@@ -25,7 +25,7 @@ $smarty->assign(array(
));
//On récupère les communes
$requete = $pdo->query('SELECT insee, nom_complet FROM commune');
$requete = $pdo->query('SELECT insee, nom_complet FROM commune WHERE avm=2 ORDER BY insee');
$communes = $requete->fetchAll(PDO::FETCH_ASSOC);
$smarty->assign(array(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment