On 11/04/2012 22:36, André Lefranc wrote:
Le 07/04/12 15:25, Gérald Yart a écrit :
Bon, je me décide enfin à vous faire parvenir les scripts réalisés par mon fiston concernant la génération d'une carte de géolocalisation tel qu'ici : http://www.cavaliersaulongcours.com/Map


Il vous faudra avant toute chose créer les champs dynamiques "Latitude" et "Longitude" (type ligne simple et non obligatoire). Ensuite vous télécharger, décompressez et installez les fichiers joints sur le serveur où est installé Galette. Le fichier compressé contient les répertoires et fichiers suivants :

  * images (rép.) : contient les images utilisées dans l'application
  * script (rép.) : contient les fichier Javascript utilisés dans
    l'application
  * affiche_image.php (fic.) : Récupère dans la table galette_picture
    l'image de l'adhérent dont  l'identifiant est envoyé en paramètre
    dans l'URL
  * create_xml.php (fic.) : Récupère les informations relatives aux
    adhérents dans la base de données et renvoie un fichier XML qui
    sera lu par le code API Google Map.
  * remplir_coord_adherents.php (fic.) : Récupère les adresses des
    adhérents dans la base de données, récupère les coordonnées
    géographiques correspondantes à l'aide du service de géocodage de
    l'API Google Map  et les enregistre dans la table
    galette_dynamic_fields.
  * index.html (fic.) :

Utilisation :

Une fois l'application installée (penser à vérifier les chemins des répertoires), exécuter le fichier remplir_coord_adherents.php.

attention : sur des versions récentes ? de galette, le fichier "config.inc.php"
a pour chemin :
include('../galette/config/config.inc.php')
changer dans [remplir_coord_adherents.php] et [create_xml.php]

Celui-ci va récupérer les adresses des adhérents dans la table "galette_adherents", les envoyer au service de géocodage de Google Maps puis écrire les coordonnées géographiques dans la table "galette_dynamic_fields".


là j'ai obtenu une erreur :
## L'exécution de la requête a retourné une erreur : Cannot add or update a child row: a foreign key constraint fails (`namd_galette`.`galette_dynamic_fields`, CONSTRAINT `galette_dynamic_fields_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES `galette_field_types` (`field_id`))
## Que faire ?



Oups pardon, J'ai oublié de préciser que dans le fichier remplir_coord_adherents.php il fallait changer les valeurs des champs field_id, je m'explique : quand vous créez les champs Latitude et longitude, le noms de ces nouveau champs sont rangés sous forme d'enregistrements dans la table galette_dynamic_fields. Il faut donc remplacer la valeur des identifiant (champ field_id) par les valeurs que vous avez dans votre table (je ne suis pas sûr d'être très clair sur ce coup là !!)





En résultat vous aurez une page qui affiche la liste des adhérents dont le géocodage s'est bien passé et/ou la liste des adhérents dont le géocodage s'est mal passé :

*Opération terminée :
- 1 adresse a été géocodée avec succès :*
Gérald Yart : lat : 47.6316470° ; lon : 1.8547100°

*- Aucune adresse n'a pas pu être géocodée*

*ATTENTION : seules les nouvelles adresses de la table galette_adherents ont été géocodées. Pour modifier les coordonnées géographiques d'un adhérent dont l'adresse a déjà été géocodée il faut le faire manuellement via la fiche adhérent galette
*

Pour afficher la carte il vous suffira d'exécuter le fichier index.php. Après l'utilisation du fichier remplir_coord_adherents.php, le chargement de la carte est un peu long, c'est normal. Si on veut relancer l'application pour un ou plusieurs adhérents déjà géocodés (déménagement, erreur dans l'adresse, etc.), il suffit d'aller vider les champs Latitude et Longitude dans les fiches des adhérents concernés. L'affichage ne se fera que si l'adhérent est "actif" et si la case "Je souhaite apparaître dans la liste des membres" est cochée. Afin de rendre l'affichage plus lisible, nous avons effectué des regroupements d'adhérents en fonction du niveau de zoom.

Voilà voilà, j'espère que ça servira à plein de gens, ce qu'il faudrait pour simplifier la chose c'est intégrer les champs latitude et longitude à la table galette_adhérent dans un prochaine version d eGalette.

Gérald

--

Mail réalisé uniquement à partir d'électrons recyclés
_______________________________________________________________________

Gérald Yart
47° 38' 0 "N, 1° 51' 14" E
_______________________________________________________________________




_______________________________________________
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion



_______________________________________________
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion


--

Mail réalisé uniquement à partir d'électrons recyclés
_______________________________________________________________________

Gérald Yart
47° 38' 0 "N, 1° 51' 14" E
_______________________________________________________________________



_______________________________________________
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion

Répondre à