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

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 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