Je n’en ai pas personnellement l’utilité, mais il pourrait être intéressant d’ajouter le support des images géolocalisées liées à un article, sous forme de document.
On peut vouloir ajouter dans le site des points qui ne sont a priori liés à aucun objet. Ils pourraient par la suite être ajoutés manuellement sur la carte ou sous forme de lien dans les textes.
Pour implémenter ça il faudrait :
Ce serait alors très intéressant de pouvoir récupérer ces points pour y accrocher a posteriori des objets. Mais ça pose un gros problème d’interface : comment fait-on pour rechercher un point ? Le plus simple est par le nom, mais ça peut être fastidieux pour l’utilisateur : se souviendra-t-il du nom des points ? Une interface géographique ne tiendrait pas s’il y a des centaines de points…
Sur spip 3.0 beta, le plugin GMap s’installe maintenant correctement et on accède aux pages de paramétrage. Par contre les pipelines ne semblent pas actifs : il faudra voir sur la version finale.
Plusieurs améliorations sont à faire :
La boucle GEOTEST permet de déterminer si un objet ou ses fils (au cas ou {recursif}
est mentionné) sont géolocalisés. Les besoins de cette boucles pourraient être beaucoup plus pointus : seulement les fils, mais non l’objet lui-même (ajouter un {self}
ou au contraire {!self}
), les fils de tel niveau, etc.
Il faudrait ajouter un modèle pour pouvoir intégrer un lien vers la carte dans le texte d’un article.
En réponse à un clic sur le lien il faudrait centrer la carte sur le point et utiliser le zoom de ce point, et éventuellement faire défiler la page HTML pour que la carte soit visible.
Ce n’est pas faisable avec les liens usuels de SPIP ([tata->addr]
) car il faut utiliser un code javascript sur l’évènement click du lien.
Je ne crois pas non plus qu’il soit pratique de le faire avec un simple modèle car on peut vouloir afficher un texte spécifique cliquable. Avec un modèle, on pourrait afficher le texte du marqueur, mais ce serait lourd de passer un texte possiblement long en paramètre du modèle.
Je verrais plutôt un filtre typographique sur <geolien id="id_marqueur">texte</geolien>
qui offrirait toute la souplesse nécessaire…
On pourrait alors tout aussi bien transformer le modèle <marker|latitude=yyy|longitude=xxx>ceci est un point</marker>
Des points proches, voire supperposés, ne sont pas différentiables sur les cartes. On ne voit que le dernier point ajouté.
La fonction de regroupement des bulles d’information permet déjà de solutionner une partie du problème : quand on clique sur un point, l’ensembles des points proches sont représentés dans la bulle d’information. Cependant il manque un retour visuel du regroupement.
Il y a plusieurs possibilités :
Les extensions ClusterManager existent pour Google Maps V2 et V3. Il suffit de les intégrer dans les scripts, de modifier l’ajout des marqueurs sur la carte et, éventuellement, de personnaliser l’apparence des regroupements.
On peut réutiliser le regroupement des bulles pour afficher une bulle d’information sur le cluster au lieu de le faire zoomer.
id_parent
sur les points.La base de données permet déjà d’associer plusieurs objet à un point, mais l’interface et le code ne le supportent pas.
Il faut :
Quand on choisit un voisin pour copier ses coordonnées, on pourrait ajouter le nouvel élément sur le même point au lieu de copier les coordonnées. Ce serait un moyen simple d’exploiter les possibilités de la base de données dans laquelle la relation point-élément est de type n-m.
Ça pose aussi quelques problèmes dans le cas où deux objets partageant un point sont représentés sur un même carte. Soit on doublonne, c’est-à-dire que le fait que, dans la partie publique, deux éléments partageant un point ne diffèrent pas de deux points ayant deux points aux même coordonnées. Soit on tente de gérer l’unicité du point :