db.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. ini_set('display_errors', 1);
  3. ini_set('display_startup_errors', 1);
  4. error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  5. $db = "host=clusterpg.linux.infra.cloud.local port=5432 dbname=sig50 user=sigr password=T38Msh2R4q";
  6. // Connexion au service
  7. $conn = pg_connect($db) or die('Connexion impossible : ' . pg_last_error());
  8. $in_srid = "4326";
  9. $pg_srid = "3949";
  10. // Execute query
  11. function executeQuery($query) {
  12. $res = [];
  13. $r = pg_query($query) or die('Échec de la requête : ' . pg_last_error());
  14. while ($row = pg_fetch_array($r, null, PGSQL_ASSOC)) {
  15. $res[] = $row;
  16. }
  17. pg_free_result($r);
  18. return $res;
  19. }
  20. // Get parameters
  21. if(isset($_POST["x"]) && isset($_POST["y"])) {
  22. $x = floatval($_POST["x"]);
  23. $y = floatval($_POST["y"]);
  24. }
  25. else if(isset($_GET["x"]) && isset($_GET["y"])) {
  26. $x = floatval($_GET["x"]);
  27. $y = floatval($_GET["y"]);
  28. }
  29. else {
  30. // $x = -1.109669152209201;
  31. // $y = 49.102353729303125;
  32. echo 'Missing parameters (x and/or y)';
  33. }
  34. // Append X,Y to results
  35. // NB: CRS is EPSG:3857
  36. $results['x'] = $x;
  37. $results['y'] = $y;
  38. // Get FTTH results
  39. $queryFtth = "Select
  40. ftth.id_zapm_partielle,
  41. ftth.phase_trav,
  42. ftth.date_deb_trav_prev,
  43. ftth.date_deb_trav_reel,
  44. ftth.date_ouv_bul_preracco,
  45. ftth.date_ferm_bul_preracco,
  46. ftth.date_abonnement_prev,
  47. ftth.date_ouv_commercialisation
  48. FROM
  49. sig_ant.v_ftth_smmn_eligibilite ftth
  50. WHERE
  51. ST_Contains(ftth.geom, ST_Transform(ST_SetSRID(ST_MakePoint($x, $y), $in_srid), $pg_srid)) = 'true';";
  52. $results['ftth'] = executeQuery($queryFtth);
  53. // Get ADSL results
  54. $queryAdsl = "Select adsl.id_num , adsl.classedebi, adsl.classe_legende
  55. From sig_ant.adsl_mthd_opt_no_3mo adsl
  56. Where ST_Contains(adsl.geom, ST_Transform(ST_SetSRID(ST_MakePoint($x, $y), $in_srid), $pg_srid)) = 'true';";
  57. $results['adsl'] = executeQuery($queryAdsl);
  58. // Get MIMO results
  59. $queryMimo = "Select mimo.id_num, mimo.date_ouv_service_reel, mimo.date_ouv_service_prev
  60. From sig_ant.mimo_antc_couverture_6km mimo
  61. Where ST_Contains(mimo.geom, ST_Transform(ST_SetSRID(ST_MakePoint($x, $y), $in_srid), $pg_srid)) = 'true';";
  62. $results['mimo'] = executeQuery($queryMimo);
  63. // Ferme la connexion
  64. pg_close($conn);
  65. echo json_encode($results);
  66. /*
  67. les requetes pour FTTH et ADSL passent sur des vues
  68. un boolean dans la view dit si zone ouverte ou pas au preraco
  69. date d'abonnement previsionel au semestre (ald mois)
  70. 1) regarder adresse.gouv.data
  71. 2) adresse gouville 150 points avec même X, Y
  72. 3) Bug IE11 5 rue des croix, saint come du mont => 50500 ca marche!
  73. */
  74. ?>