rodolpheg

Untitled

Feb 28th, 2020
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. <?php
  2. // Connexion à la base de données "cours7" se trouvant sur le serveur localhost. Nous nous y connectons avec l'identifiant "postgres", et nous entrons le mot de passe que nous avons créé au moment de l'initialisation de la BD PostgreSQL
  3. $db = new PDO("pgsql:host=localhost; dbname=gmq717", "postgres", "gmq717");
  4.  
  5. // Nous créons une requête SQL à partir des variables récupérées dans l'URL
  6. if ($_GET['var'] == 'pop') {
  7. // Si la variable est 'pop', alors nous ne voulons pas simplement la valeur brute de la variable, mais la densité de la population dans cette aire de diffusion : densité = pop / superficie en km2. Comme nous sommes dans un système de coordonnées géographiques, il faut projeter les coordonnées dans un système qui respecte bien les superficies localement : https://mern.gouv.qc.ca/wp-content/uploads/CO_codes_epsg_quebec.pdf
  8. $sql = 'SELECT pop / (ST_AREA(ST_TRANSFORM(geom, 32098)) / 1000000.0) as var, da_number, ST_AsGeoJSON(geom, 6) as geom FROM "montreal_postgis" WHERE ' . $_GET['var'] . ' > ' . $_GET['varMin'] . ' AND ' . $_GET['var'] . ' < ' . $_GET['varMax'] . ';';
  9. } else {
  10. // Si la variable n'est pas 'pop', fournir la valeur brute.
  11. $sql = 'SELECT ' . $_GET['var'] . '::INTEGER as var, da_number, ST_AsGeoJSON(geom, 6) as geom FROM "montreal_postgis" WHERE ' . $_GET['var'] . ' > ' . $_GET['varMin'] . ' AND ' . $_GET['var'] . ' < ' . $_GET['varMax'] . ';';
  12. }
  13. // Construire la requête sur l'objet PDO à partir du code SQL
  14. $query = $db->query($sql);
  15. // Création d'une liste vide qui contiendra les entités spatiales
  16. $features = [];
  17. // Nous démarrons une boucle "while" pour passer à travers le résultat de la requête et la convertir en un objet 'feature' GeoJSON
  18. while ($row = $query->fetch()) {
  19. $geometry = $row['geom'] = json_decode($row['geom']);
  20. unset($row['geom']);
  21. // Nous retirons les résultats redondants
  22. unset($row[0]);
  23. unset($row[1]);
  24. unset($row[2]);
  25. // Nous reconstituons notre 'feature' sur le modèle GeoJSON
  26. $feature = ['type' => 'Feature', 'geometry' => $geometry, 'properties' => $row];
  27. array_push($features, $feature);
  28. };
  29. // Nous imbriquons nos entités dans une collection d'entités GeoJSON
  30. $featureCollection = ["type" => "FeatureCollection", "features" => $features];
  31. echo stripslashes(json_encode($featureCollection));
  32. ?>
Add Comment
Please, Sign In to add comment