Commit b9ad7ec2 authored by Rinkio's avatar Rinkio

Ajout d'une carte de la métropole avect les satitons en page d'accueil

Ajout d'une carte indiquant la position des stations
ainsi que leur état :
- triangle rouge=en travaux
- losange vert=en service
- rond noir=état inattendu

Les limites de la carte sont définise en fonction des communes ayant au
moins une station vélib (d'après les numéros de stations)

chaque point correspondant à une station est cliquable et mène à la page
détaillant la station

ces points ont également une info-bulle donnant numéro, nom et état

correction de bugs dans la fonction carte
parent f3b26fe3
......@@ -314,7 +314,7 @@ function carte($largeur_carte=800,$hauteur_carte=600,$filtre=0,
{
$svg.="\t".'<a xlink:href="'.$objet['lien'].'">'."\n";
//ajout de l'info-bulle si elle est définie (il faut que le lien soit défini)
if(isset($objet['info']))
if($objet['info']!='')
$svg.="\t".'<title>'.$objet['info'].'</title>'."\n";
}
......@@ -371,7 +371,7 @@ function carte($largeur_carte=800,$hauteur_carte=600,$filtre=0,
/****** FIN DE L'AFFICHAGE DES OBJETS *****************************************/
if($objet['lien']!='')
{
echo "\t".'</a>'."\n";
$svg.="\t".'</a>'."\n";
}
}
$svg.='</g>'."\n";
......@@ -382,39 +382,4 @@ function carte($largeur_carte=800,$hauteur_carte=600,$filtre=0,
return($svg);
}
//exemples d'utilisation de la fonction
/*
$couleur_etab=array(0=>'#888888',1=>'#6887B3',2=>'#AF732A',3=>'#4EB26E',4=>'#AE335B',5=>'#EE7E70',6=>'#A2CC84',7=>'#3797D3',8=>'#E74B3D',9=>'#C89D67',10=>'#F39D1F',11=>'#577364',12=>'#905CA1');
$coul=array();
$texte=array();
$requete = $pdo->query('SELECT insee, dept, etab FROM commune');
$resultat = $requete->fetchAll();
foreach($resultat AS $ligne)
{
$texte[$ligne['insee']]='['.$ligne['dept'].']';
if(isset($couleur_etab[$ligne['etab']])) $coul[$ligne['insee']]=$couleur_etab[$ligne['etab']];
else $coul[$ligne['insee']]=$couleur_etab[0];
}
$objets=array(
array('nature'=>'texte','x'=>300,'y'=>30,'texte'=>'Stations Vélib’ dans la','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0),
array('nature'=>'texte','x'=>300,'y'=>60,'texte'=>'Métropole du Grand Paris','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0),
array('point'=>'carre','x'=>-18,'y'=>10,'taille'=>8,'couleur'=>'#008000','angle'=>45),
array('point'=>'triangle','x'=>-38,'y'=>10,'taille'=>8,'couleur'=>'#800000','angle'=>90),
array('nature'=>'texte','x'=>-20,'y'=>20,'texte'=>'Stations ouvertes','taille'=>12,'angle'=>90,'align'=>'l'),
array('nature'=>'texte','x'=>-40,'y'=>20,'texte'=>'Stations fermées','taille'=>12,'angle'=>90,'align'=>'l'))
;
$requete = $pdo->query('SELECT code, latitude, longitude,type FROM stations');
$resultat = $requete->fetchAll();
foreach($resultat AS $ligne)
{
if($ligne['type']=='yes') $objets[]=array('point'=>'carre','lat'=>$ligne['latitude'],'lon'=>$ligne['longitude'],'couleur'=>'#008000','info'=>'Station '.$ligne['code'],'lien'=>'http://velib.nocle.fr/station.php?code='.$ligne['code'],'angle'=>45);
else $objets[]=array('point'=>'triangle','lat'=>$ligne['latitude'],'lon'=>$ligne['longitude'],'couleur'=>'#800000','info'=>'Station '.$ligne['code'],'lien'=>'http://velib.nocle.fr/station.php?code='.$ligne['code']);
}
*/
?>
......@@ -57,24 +57,79 @@ else
<p>
<?php
$objets=array(
array('nature'=>'texte','x'=>300,'y'=>30,'texte'=>'Stations Vélib’ dans la','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0),
array('nature'=>'texte','x'=>300,'y'=>60,'texte'=>'Métropole du Grand Paris','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0),
//tableaux décrivant les communes ayant des stations
$liste_communes=array();
$objets=array();
array('point'=>'carre','x'=>-18,'y'=>10,'taille'=>8,'couleur'=>'#008000','angle'=>45),
array('point'=>'triangle','x'=>-38,'y'=>10,'taille'=>8,'couleur'=>'#800000','angle'=>90),
foreach($statusStation as $station)
{
//interprétation de l'état de la station 0=état non prévu
switch($station['state'])
{
case 'Work in progress': $etat=1; break;
case 'Operative': $etat=2; break;
default: echo $station['state']; $etat=0;
}
array('nature'=>'texte','x'=>-20,'y'=>20,'texte'=>'Stations ouvertes','taille'=>12,'angle'=>90,'align'=>'l'),
array('nature'=>'texte','x'=>-40,'y'=>20,'texte'=>'Stations fermées','taille'=>12,'angle'=>90,'align'=>'l'));
//récupération de la commune correspondant à la station (d'après son numéro)
$res=$pdo->query('SELECT insee FROM tranche WHERE debut<="'.$station['code'].'" AND fin>="'.$station['code'].'"');
$ligne=$res->fetch();
//initialisation du nombre de stations + ajout à la liste des communes
if(!isset($nb_stations[$ligne['insee']]))
{
$liste_communes[]=$ligne['insee'];
}
if($etat==0)
{
$objets[]=array(
'nature'=>'point',
'point'=>'rond',
'taille'=>8,'couleur'=>'#000000',
'lon'=>$station['longitude'],
'lat'=>$station['latitude'],
'lien'=>'station.php?code='.$station['code'],
'info'=>'Station '.sprintf('%05d',$station['code'])."\n".$station['name'].'<br/>'."\n".'État inconnu');
}
else if($etat==1)
{
$objets[]=array(
'nature'=>'point',
'point'=>'triangle',
'taille'=>8,'couleur'=>'#800000',
'lon'=>$station['longitude'],
'lat'=>$station['latitude'],
'lien'=>'station.php?code='.$station['code'],
'info'=>'Station '.sprintf('%05d',$station['code'])."\n".$station['name'].'<br/>'."\n".'En travaux');
}
else if($etat==2)
{
$objets[]=array(
'nature'=>'point',
'point'=>'carre',
'taille'=>6,'couleur'=>'#008000','angle'=>'45',
'lon'=>$station['longitude'],
'lat'=>$station['latitude'],
'lien'=>'station.php?code='.$station['code'],
'info'=>'Station '.sprintf('%05d',$station['code'])."\n".$station['name'].'<br/>'."\n".'En service');
}
}
$objets[]=array('nature'=>'texte','x'=>300,'y'=>30,'texte'=>'Stations Vélib’ dans la','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0);
$objets[]=array('nature'=>'texte','x'=>300,'y'=>60,'texte'=>'Métropole du Grand Paris','taille'=>24,'couleur'=>'blue','align'=>'m','angle'=>0);
include('carte.php');
echo '**';
$svg=carte(800,600,75,'commune',array(),array(),$objets);
$objets[]=array('point'=>'carre','x'=>-18,'y'=>10,'taille'=>6,'couleur'=>'#008000','angle'=>45);
$objets[]=array('point'=>'triangle','x'=>-38,'y'=>10,'taille'=>8,'couleur'=>'#800000','angle'=>90);
$objets[]=array('nature'=>'texte','x'=>-20,'y'=>20,'texte'=>'Stations ouvertes','taille'=>12,'angle'=>90,'align'=>'l');
$objets[]=array('nature'=>'texte','x'=>-40,'y'=>20,'texte'=>'Stations fermées','taille'=>12,'angle'=>90,'align'=>'l');
include('carte.php');
$svg=carte(800,600,$liste_communes,'commune',array(),array(),$objets);
echo $svg;
echo $svg;
echo '**';
?>
</p>
......
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