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