db.php 3.0 KB

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