Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#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