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 Thu 01 November 2012 17:25

heretik
Participant occasionnel
Date d'inscription: 17 Feb 2009
Messages: 13

Geojson php => points

Bonjour,

A l'instar du sujet sur comment créer une polyligne en php pour en faire un geojson, j'aimerais trouver l'astuce pour faire de même avec des points.

Faire des multipoints ressemble a la polyligne mais faire des points, je n'y arrive pas .

Voici le code sur lequel je butte :

Code:

//requete sql

    //Je créé la structure générale de mon geojson dans un  tableau associatif $Resultat
    $Resultats = array('type'=> 'FeatureCollection', 'features' => array());
    
    //Je rajoute les paires de points qui composent ma géométrie
    while($tab_select_coordonne = $sql_select_coordonne->fetch())
    {                
        //Je rajoute un feature dans ce tableau avec pour l'instant des valeurs de géométrie et d'attributs vides
        $Resultats['features'][] = array('type' => 'feature', 'geometry' => Null, 'properties' => Null);
        //Je remplis plus précisément mon feature
        $Resultats['features'][0]['geometry'] = array('type' => 'Point', 'coordinates' => array()); //Je remplis le geometry de ce feature (géometrie vide pour l'instant)
        $Resultats['features'][0]['geometry']['coordinates'] = array(floatval($tab_select_coordonne['coord_gps_lon']), floatval($tab_select_coordonne['coord_gps_lat']));
        
        
        //$Resultats['features'][0]['properties']['nom_champ1'] = "ma valeur 1"; //Je rajoute un attribut nom_champ1 à ce feature
        //$Resultats['features'][0]['properties']['nom_champ2'] = "ma valeur 2"; //Je rajoute un autre attribut nom_champ2 à ce feature
    
        echo json_encode($Resultats);    
    }

Si je me limite à un point, ce code fonctionne. Dès lors qu'il y a deux points, ce n'est plus fonctionnel.
Par avance merci pour votre aide smile

Dernière modification par heretik (Thu 01 November 2012 17:26)


On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...

Hors ligne

 

#2 Thu 01 November 2012 19:05

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Geojson php => points

Salut heretik,
Avec ce code, tu rajoutes à chaque tour de ta boucle une paire de coordonnées dans la géométrie de ton unique feature point.
Donc forcément, ce n'est pas un bon geojson.
Pour faire une couche de points, il faut créer un feature (et une géométrie point) par tour de ta boucle.

Donc :

Code:

//requete sql

    //Je créé la structure générale de mon geojson dans un  tableau associatif $Resultat
    $Resultats = array('type'=> 'FeatureCollection', 'features' => array());

    //Je rajoute à chaque boucle un feature point
    while($tab_select_coordonne = $sql_select_coordonne->fetch())
    {   
        //Creation du feature vierge
        $feature = array('type' => 'feature', 'geometry' => Null, 'properties' => Null);
        //Renseignement de la geometrie
        $feature['geometry'] = array('type' => 'Point', 'coordinates' => array(floatval($tab_select_coordonne['coord_gps_lon']), floatval($tab_select_coordonne['coord_gps_lat'])));
        
         //Ajout des attributs de mon feature
         $feature['properties']['nom_champ1'] = "ma valeur 1"; //Je rajoute un attribut nom_champ1 à ce feature
         $feature['properties']['nom_champ2'] = "ma valeur 2"; //Je rajoute un autre attribut nom_champ2 à ce feature
        
        //Je rajoute mon feature à mon tableau geojson général
         $Resultats['features'][] = $feature;   
    }
//Maintenant que j'ai tout mon tableau associatif geojson, j'affiche le résultat
echo json_encode($Resultats);

NB : je travaille sur une librairie php pour faire ce genre de choses très facilement. Je la publierai d'ici quelques mois sous licence libre.

Dernière modification par Cornet Jérémie (Thu 01 November 2012 19:07)

Hors ligne

 

#3 Thu 01 November 2012 19:10

heretik
Participant occasionnel
Date d'inscription: 17 Feb 2009
Messages: 13

Re: Geojson php => points

Un grand merci pour ton coup de main. J'ai hâte de voir ce que ta librairie proposera !

Je continue dans la lancée et si j'ai d'autres soucis, je repasserai dans le coin.

@bientôt smile

Résultat visible ici http://partir-en-vtt.com/php/articles/i … lobale.php

Dernière modification par heretik (Thu 01 November 2012 19:19)


On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...

Hors ligne

 

#4 Thu 01 November 2012 19:35

heretik
Participant occasionnel
Date d'inscription: 17 Feb 2009
Messages: 13

Re: Geojson php => points

Me revoilà. J'ai appliqué la stratégie de cluster() afin d'aérer la carte.

Code:

new OpenLayers.Strategy.Cluster()

Malheureusement, je me retrouve confronté à un problème. En effet, pour que la carte soit compréhensible, il me faut différencier les points des balades à vtt, des balades à pied, des balades à raquette. Comment pourrait-on faire cela tout en gardant la stratégie de cluster ?


ljegou m'a montré ce lien pour customiser le rendu du cluster http://www.adyax.com/en/tutorials/googl … openlayers

Je n'arrive pas à l'implémenter.

Une idée ? merci

Je cherche aussi le moyen d'exploiter les attributs du Geojson pour créer une infobulle dynamique à partir de ces données.

Un peu d'explication serait la bienvenue !

Merci !

Dernière modification par heretik (Thu 01 November 2012 20:46)


On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...

Hors ligne

 

#5 Thu 01 November 2012 21:12

heretik
Participant occasionnel
Date d'inscription: 17 Feb 2009
Messages: 13

Re: Geojson php => points

J'ai l'impression que mon idée de départ va vite devenir très difficile à gérer.

En effet, comment afficher les balades du cluster ? uttagawa vtt à réussi à le faire d'une façon très brillante ...http://www.utagawavtt.com/gmap/carte-generale-topos-vtt

J'ai trouvé ce topic, http://www.forumsig.org/showthread.php?t=27040 mais n'est-ce pas utopique d'essayer de réussir sur cette voie ?

Merci.

Dernière modification par heretik (Thu 01 November 2012 21:16)


On ne va jamais aussi loin que lorsque l'on ne sait pas où l'on va...

Hors ligne

 

#6 Fri 02 November 2012 09:52

Laurent Jégou
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 447
Site web

Re: Geojson php => points

heretik a écrit:

Comment pourrait-on faire cela tout en gardant la stratégie de cluster ?


Peiut-être avec un layer par type de randos ? Mais cela risque de demander de réécrire du code (recherches, clics, etc.).


Enseignant-Chercheur en Géomatique
UT2J - Dept Géo / CNRS UMR LISST-Cieu / Master Sigma - Revue Mappemonde

Hors ligne

 

#7 Fri 02 November 2012 12:49

Cornet Jérémie
Participant assidu
Lieu: Nouméa
Date d'inscription: 6 Apr 2008
Messages: 229

Re: Geojson php => points

Hors ligne

 

Pied de page des forums

Powered by FluxBB