banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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 sad
Merci de m'aider....

Dernière modification par tati (Wed 02 August 2017 18:08)

Hors ligne

 

Pied de page des forums

Powered by FluxBB