Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2010-09-21 16:42:27

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Générer des fichiers kml pour Google Maps

Bonjour

Je travaille sur une carte touristique interactive basée sur l'API de Google Maps, visible sur cette page.

J'ai plusieurs fichiers *.kml appelés par la carte pour afficher les différentes couches d'information. Ces fichiers m'ont été fournis par un prestataire avec les informations basiques dont j'avais besoin.

Maintenant je souhaiterais créer un plugin qui permette à un rédacteur de modifier ou compléter les informations contenues dans ces fichiers, mais je ne sais pas par où commencer...

Connaîtriez-vous une astuce (site en ligne générant les kml) ou un script tout fait pour parser en PHP et lire/écrire dans ces fichiers ?

Dernière modification par Philippe (2010-10-06 09:42:20)

Hors ligne

#2 2010-09-21 17:35:31

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

En guise de teaser pour un sorcier intéressé par l'idée, je souhaite que le plugin soit distribué ;)

Dans le cahier des charges :

- saisie de coordonnées géographiques pour les points d'ancrage des infobulles
- saisie d'une suite de coordonnées pour des itinéraires
- interface wiki de saisie pour une description du texte affiché dans les infobulles

Pour info, les fichiers kml sont ici

Hors ligne

#3 2010-09-21 19:27:27

JcDenis
Membre
Lieu : Lyon, France
Inscription : 2007-08-31
Site Web

Re : Générer des fichiers kml pour Google Maps

Ils auraient pas pu y appeler xml...
Merci pour ces infos et exemple, cela me donne des idées pour par exemple faire des maps interactives pour mon plugin eventHandler via un urlHandlers servant des fichiers kml en dynamique (par exemple afficher les points de rendez-vous d'une catégorie uniquement, ou d'un groupe de musique, etc...).
Bref, tout ça pour dire que ce sujet m'intéresse également. (même si j'ai moins de temps a y consacrer en ce moment.)


Cordialement,
_JC | Intérimaire | En mode invisible

Hors ligne

#4 2010-09-21 21:02:30

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Générer des fichiers kml pour Google Maps

KML est en effet un simple XML qui suit le schéma Collada, voir ici (entre autres) : https://collada.org/mediawiki/index.php … nge_Schema


Dotclear addicted since 2004

Hors ligne

#5 2010-09-22 16:21:25

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

A bien y réfléchir, je pense que je pourrais peut-être m'inspirer du plugin feedentries : il est fait pour lire des flux rss, c'est du XML, non ? Déjà, ça me permettrait de lire le fichier.

De plus il y a déjà plein de balises de template qui sont définies dedans. Euh... ça ressemble à une piste sérieuse, non ?

Hors ligne

#6 2010-09-23 05:34:29

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

Ce n'est pas la bonne piste : le plugin s'appuie sur la classe FeedReader de clearbricks, qui n'accepte que des formats de flux de syndication. A moins que je puisse m'en inspirer aussi ?

Du coup je reviens à ma question initiale...

Hors ligne

#7 2010-10-06 09:39:03

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

J'ai un peu avancé dans ma réflexion : les cartes seront générées à partir d'une liste de billets spéciaux, afin que l'utilisateur du blog puisse modifier les points d'intérêt au moyen de l'interface habituelle de Dotclear et en syntaxe wiki ;)

Ces billets spéciaux seront donc composés ainsi :

- titre du billet : le nom du point d'intérêt (ou de l'itinéraire)
- extrait : les coordonnées géographiques du point (ou d'une suite de points pour les itinéraires)
- contenu : la description du point ou de l'itinéraire avec les images, les liens ou le texte kivonbien

L'excellent plugin Muppet me permettra de créer ces billets avec un post_type "map", qui seront rangés dans des catégories et sous-catégories dédiées.

Maintenant, il va me falloir générer, avant l'enregistrement, la suppression ou la mise à jour de ces billets, les fichiers *.kml correspondants (c'est une étape non résolue pour l'instant mais j'ai pas mal de pistes). Dans le plugin, je pense donc utiliser les behaviors suivants :

- adminBeforePostCreate
- adminBeforePostUpdate
- adminBeforePostDelete

Ces évènements ne seront bien entendu interceptés que pour les billets dont le post_type est map.

Mes questions sont donc les suivantes :

1) cette méthodologie vous semble-t-elle adaptée ?
2) ces behaviors sont-ils les bons (adminBeforePostCreate ou adminAfterPostCreate) ?
3) dans quel(s) fichier(s) du plugin dois-je faire ma cuisine, sachant que le plugin ne nécessitera pas d'interface d'administration ? Y a-t-il d'ailleurs un plugin dont je puisse m'inspirer ?
4) serait-il utile de créer un espace sur le Lab pour le développement de ce plugin (je ne perds pas l'espoir d'entraîner un vrai sorcier dans ce projet ^^) ?

Merci à ceux qui suivent encore et pourront m'apporter leur grain de sel :)

Hors ligne

#8 2010-10-06 12:20:26

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Générer des fichiers kml pour Google Maps

Mes réponses (à la volée), mais on peut en rediscuter :

1. Oui ça me paraît correct, sauf pour un point : pourquoi générer le ou les .kml avant l'enregistrement et pas après ? Si l'enregistrement échoue ça va provoquer une désynchronisation entre le billet et le ou les kml associés, non ?

2. Oui sauf que (cf 1.)

3. dans le fichier _public.php s'il s'agit de la partie publique, mais j'ai l'impression qu'il s'agit plutôt d'un traitement complémentaire à la création/modification de billet, et dans ce cas plutôt dans _admin.php (je n'ai pas en tête de plugin similaire, sauf peut-être Typo qui intervient directement sur le contenu des billets)

4. Je pense que oui mais pas nécessaire si tu bosses seul sur ce plugin.


Dotclear addicted since 2004

Hors ligne

#9 2010-10-06 16:50:30

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

Pour le 1 et 2, c'est effectivement une bonne remarque ;)

Pour le 3, je pense que ce serait plutôt dans un fichier prepend.php... si je comprends bien à quoi ça sert :p

dernière minute : j'ai retenu l'attention d'un sorcier, j'essaie de décoder les conseils qu'il m'a murmurés à l'oreille ;) Quelqu'un aurait un dico klingon-français ?

Hors ligne

#10 2010-11-17 10:37:33

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Générer des fichiers kml pour Google Maps

Des nouvelles du projet : les fichiers kml ne seront pas utilisés :D j'ai finalement trouvé plus simple et plus souple. Aussi je termine ce sujet par une petite explication :

Le plugin permet maintenant d'enregistrer un nouveau type de billet. Chacun de ces billets est une "carte" représentant un point d'intérêt ou un parcours, et consiste en :

- un titre qui sera utilisé pour le titre de l'infobulle
- des coordonnées qui seront utilisées pour afficher le point ou le parcours
- un contenu qui sera utilisé dans l'infobulle

J'utilise donc les champs post_title,post_excerpt et post_content originaux, mais l'extrait est masqué par une carte Gmap qui permet de choisir les lieux. Les coordonnées récupérées sont stockées dans l'extrait du billet.

Le chantier avance donc j'espère dans la bonne direction.

Il sera ensuite possible d'insérer une carte dans un billet normal, au moyen d'un bouton dans la barre d'édition qui permettra de choisir les points ou les parcours à afficher. Ces points ou parcours (en fait seulement les ids des billets de type map) seront stockés dans un nouveau champ posts_maps de la table dc_posts.

Le javascript correspondant au positionnement des points choisis sera donc généré pour chaque billet.

J'ai maintenant d'autres questions que je vais formuler dans un sujet plus spécifique. Merci des suggestions et remarques apportées par tous ici :)

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map