#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