#1 Wed 02 August 2017 18:07
- tati
- Participant occasionnel
- Date d'inscription: 6 Jun 2017
- Messages: 27
Webmapping leaflet+postgis
Bonjour,
Je galère depuis quelques jours pour afficher ma table de points qui se situe dans postgres sur ma carte leaflet.
J'ai vu ce post sur georezo qui ressemble à ce que je veux faire: https://georezo.net/forum/viewtopic.php?id=107247
Je l'ai adapté, voici mon code php:
Code:
<?php
// Connection à la base de données
try {
$dbconn=new PDO("pgsql:host=localhost;dbname=****","****","***") or die('Connexion impossible');
$dbconn->exec("SET CHARACTER SET utf8");
$dbconn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// S'il existe un problème de connection, on obtient le message d'erreur
} catch(PDOException $erreur) {
$erreur->getMessage(); // Supprimer en production
echo $erreur;
}
if($dbconn){
// Exécution de la requête SQL
$sql="SELECT json_build_object(
'type', 'FeatureCollection',
'crs', json_build_object(
'type', 'name',
'properties', json_build_object(
'name', 'EPSG:4326')),
'features', json_agg(
json_build_object(
'type', 'Feature',
'id', siren,
'geometry', ST_AsGeoJSON(ST_FlipCoordinates(geom))::json,
'properties', json_build_object(
'nom', nom,
'activite', libapet,
'adresse_geocode', adresse
)
)
)
) AS objet_geosjon FROM sirene;"; // where geom IS NOT NULL
$req=$dbconn->prepare($sql);
$req->execute();
$data=$req->fetch();
if($data){
$json=$data['objet_geosjon'];
echo $json;
}else{
echo "Un problème s\'est déroulé lors du chargement de la donnée.";
}
}
?>et mon la fonction js pour ajouter ma couche sur la carte:
Code:
$.ajax({
type: "POST",
url: "./donne.php",
dataType: "JSON",
success: function (json) {
var result = JSON.parse(json);
// TESTEZ l'appel de vos résultats dans le firebug via un console.log par exemple :
console.log(json.features[0].geometry.coordinates[0]);
var nb_features=json.features.length;
for(var i = 0; i < nb_features; i++){
//nom
console.log(json.features[i].properties.nom);
// ici vos coordonnées
if(json.features[i].geometry != null){
console.log('coordonnées : '+json.features[i].geometry.coordinates[0]+'/'+json.features[i].geometry.coordinates[1]);
}
}
}
}).fail(function(erreur){
});Mais rien ne s'affiche sur la carte ![]()
Merci de m'aider....
Dernière modification par tati (Wed 02 August 2017 18:08)
Hors ligne


