Skip to Content

getData

  1. <?php
  2. //Header de type texte
  3. header('Content-type: text/html; charset=UTF-8');
  4.  
  5. //Paramètres de connexion à la BDD PgSQL
  6. require('connect.php');
  7.  
  8. $chco = "host=".$pg_hote." dbname=".$pg_base_de_donnees." user=".$pg_utilisateur." password=".$pg_mot_de_passe;
  9. $dbconn = pg_connect($chco) or die("Connexion impossible");
  10.  
  11. //Requête SQL pour récupérer les centres des départements et les données de population, en joignant les deux tables
  12. $sql = "SELECT dep, departements.nom_dept, pop07, pop99, pop90, pop82, st_astext(st_centroid(st_transform(departements.the_geom, 27572))) as coords FROM popdepts, departements where popdepts.dep = departements.code_dept order by pop07 desc";
  13.  
  14. $res = pg_query($sql) or die(pg_last_error());
  15.  
  16. //Requête SQL pour récupérer les valeurs max.
  17. $sqlm = "SELECT max(pop07), max(pop99) FROM popdep2007";
  18.  
  19. $resm = pg_query($sqlm) or die(pg_last_error());
  20.  
  21. $resultm = pg_fetch_array($resm);
  22.  
  23. //Sélection de la valeur max.
  24. $maxval = max($resultm[0], $resultm[1]);
  25.  
  26. //Calcul du coefficient de réduction des valeurs pour affichage, par rapport à la valeur max.
  27. if ($maxval > 0) {
  28. $coef = 10 / sqrt($maxval);
  29. } else {
  30. $coef = 1;
  31. }
  32.  
  33. //Génération de la chaîne GeoJSON
  34. $str = '';
  35. $str .= '{
  36. "type": "FeatureCollection",
  37. "features": [';
  38. $i = 1;
  39. while ($result = pg_fetch_array($res)) {
  40. $coords = substr($result['coords'], 5, strlen($result['coords'])-1);
  41. $pdelim = strpos($coords, ' ');
  42. $long = substr($coords, 1, $pdelim - 1);
  43. $lat = substr($coords, $pdelim + 1, (strlen($coords) - $pdelim) - 2);
  44. $str .= '{
  45. "geometry": {
  46. "type": "Point",
  47. "coordinates": ['.$long.','.$lat.']
  48. },
  49. "id": '.$i++.',
  50. "type": "Feature",
  51. "bbox": ['.$long.','.$lat.','.$long.','.$lat.'],
  52. "properties": {
  53. "codgeo": "'.$result['dep'].'",
  54. "nom": "'.$result['nom_dept'].'",
  55. "pop07": '.$result['pop07'].',
  56. "pop99": '.$result['pop82'].',
  57. "pop90": '.$result['pop90'].',
  58. "pop82": '.$result['pop99'].',
  59. "t2007": '.round(sqrt($result['pop07']) * $coef, 2).',
  60. "t1999": '.round(sqrt($result['pop99']) * $coef, 2).',
  61. "t1990": '.round(sqrt($result['pop90']) * $coef, 2).',
  62. "t1982": '.round(sqrt($result['pop82']) * $coef, 2).'
  63. }
  64. },';
  65. }
  66. $str2 = substr($str,0,strlen($str)-1);
  67.  
  68. $str2 .= ']}';
  69.  
  70. //La chaîne GeoJSON est prête, on l'écrit sur la sortie standard, en réponse à l'appel du script PHP.
  71. echo $str2;
  72.  
  73. //Fermeture de la connexion PgSQL.
  74. pg_close($dbconn);
  75.  
  76. ?>