Skip to Content

getData

<?php
	//Header de type texte
	header('Content-type: text/html; charset=UTF-8');
 
	//Paramètres de connexion à la BDD PgSQL
	require('connect.php');
 
	$chco = "host=".$pg_hote." dbname=".$pg_base_de_donnees." user=".$pg_utilisateur." password=".$pg_mot_de_passe;
	$dbconn = pg_connect($chco) or die("Connexion impossible");
 
	//Requête SQL pour récupérer les centres des départements et les données de population, en joignant les deux tables
	$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";
 
	$res = pg_query($sql) or die(pg_last_error());
 
	//Requête SQL pour récupérer les valeurs max.
	$sqlm = "SELECT max(pop07), max(pop99) FROM popdep2007";
 
	$resm = pg_query($sqlm) or die(pg_last_error());
 
	$resultm = pg_fetch_array($resm);
 
	//Sélection de la valeur max.
	$maxval = max($resultm[0], $resultm[1]);
 
	//Calcul du coefficient de réduction des valeurs pour affichage, par rapport à la valeur max.
	if ($maxval > 0) {
		$coef = 10 / sqrt($maxval);
	} else {
		$coef = 1;
	}
 
	//Génération de la chaîne GeoJSON
	$str = '';
	$str .= '{
	"type": "FeatureCollection",
	"features": [';
	$i = 1;
	while ($result = pg_fetch_array($res)) {
		$coords = substr($result['coords'], 5, strlen($result['coords'])-1);
		$pdelim = strpos($coords, ' ');
		$long = substr($coords, 1, $pdelim - 1);
		$lat = substr($coords, $pdelim + 1, (strlen($coords) - $pdelim) - 2);
		$str .= '{
			"geometry": {
				"type": "Point",
				"coordinates": ['.$long.','.$lat.']
			},
			"id": '.$i++.',
			"type": "Feature",
			"bbox": ['.$long.','.$lat.','.$long.','.$lat.'],
			"properties": {
				"codgeo": "'.$result['dep'].'",
				"nom": "'.$result['nom_dept'].'",
				"pop07": '.$result['pop07'].',
				"pop99": '.$result['pop82'].',
				"pop90": '.$result['pop90'].',
				"pop82": '.$result['pop99'].',
				"t2007": '.round(sqrt($result['pop07']) * $coef, 2).',
				"t1999": '.round(sqrt($result['pop99']) * $coef, 2).',
				"t1990": '.round(sqrt($result['pop90']) * $coef, 2).',
				"t1982": '.round(sqrt($result['pop82']) * $coef, 2).'
			}
		},';
	}
	$str2 = substr($str,0,strlen($str)-1);	
 
	$str2 .= ']}';
 
	//La chaîne GeoJSON est prête, on l'écrit sur la sortie standard, en réponse à l'appel du script PHP.
	echo $str2;
 
	//Fermeture de la connexion PgSQL.
	pg_close($dbconn);
 
?>