Google Maps API v3
Attention, cette contribution est EN CHANTIER : elle n’est peut-être pas fonctionnelle.
Bien qu’en chantier, cette contribution est parfaitement fonctionnelle mais pour l’instant pauvre en fonctionnalités
L’API v3 de Google Maps et son exploitation en JSON. Une carte dans les pages articles du privé pour placer un marqueur.
Ce plugin n’est pas la nouvelle version du plugin GoogleMapAPI, c’est un plugin autonome permettant d’utiliser simplement la nouvelle API de Google Maps. Il n’est pour l’instant pas autant aboutit, contributeurs bien venus :)
Pour ceux qui souhaitent du fonctionnel tout de suite :
L’API v3 de Google Maps et son exploitation en JSON. Une carte dans les pages articles du privé pour placer un marqueur.
Ce plugin n’est pas la nouvelle version du plugin GoogleMapAPI, c’est un plugin autonome permettant d’utiliser simplement la nouvelle API de Google Maps. Il n’est pour l’instant pas autant aboutit, contributeurs bien venus :)
Pour ceux qui souhaitent du fonctionnel tout de suite :
Bien qu’en chantier, cette contribution est parfaitement fonctionnelle mais pour l’instant pauvre en fonctionnalités
L’API v3 de Google Maps et son exploitation en JSON. Une carte dans les pages articles du privé pour placer un marqueur.
Ce plugin n’est pas la nouvelle version du plugin GoogleMapAPI, c’est un plugin autonome permettant d’utiliser simplement la nouvelle API de Google Maps. Il n’est pour l’instant pas autant aboutit, contributeurs bien venus :)
Pour ceux qui souhaitent du fonctionnel tout de suite :
Discussions par date d’activité
16 discussions
Bonjour,
Je rencontre un pb déjà évoqué, lorsque j’utilise le fichier sommaire qui se trouve dans le dossier exemple fourni avec le plugin, tout fonctionne bien, mais lorsque je le met dans mon squellette article ou rubrique, rien ne s’affiche.
Faut-il déplacer le fichier json-tousLesArticles.html dans le dossier squelette du site ?
Mertci pour vos réponses
Répondre à ce message
« json-encode non défini » dans « plugins/googlemaps_api_v3/json-tousLesArticles.html »...
Voilà la réponse à la requête : spip.php ?page=json-tousLesArticles sur mon site online, alors que tout fonctionne en local.
Il me semble avoir couvert tous les champs de mon possible. Quelqu’un a-t-il déjà rencontré le problème ?
Salut benolaos.
Le problème, c’est Online. Ce sont juste des gros nases et je t’invite aussi à lire leurs CGV abusives (court vite chez Gandi ou OVH ça t’évitera bien des soucis, ou chez un hébergeur gratuit, ça sera toujours mieux).
Peut être n’es-tu pas en PHP5. Demande leur d’activer PHP5, si jamais ils l’ont sur leurs bouses et qu’ils trouvent un indépendant qui soit capable de leur installer parce que eux en interne... :)
(tu peux aussi installer GIS Escoitar qui fonctionne directement bien)
Bon courage :p
Bonjour xdjuj,
Quand je disais que mon site ne fonctionnait pas « online », je parlais par opposition au site développé en local, et non « online » le nom de la société. En fait, je suis hébergé sur OVH... Et il semble que je sois déjà sous PHP5 (la base est placée sous MySQL5...)
Ca ne viendrait donc pas de cela, mais de quelque chose d’autre ;-) Mais quoi... En tout cas, merci xdjuj pour ta réponse, même si il y a besoin de creuser un peu plus la chose...
lol ok ;-) Bah en tout cas, concernant Online c’est dit :p
Sinon essaye d’activer PHP5 (des fois que ça soit pas fait => http://guides.ovh.com/Php5ChezOvh )
Répondre à ce message
Bonjour,
Je signale quelques bugs que j’ai corrigé.
Il y a un problème d’encodage des urls lié à un bug avec la fonction json_encode de php (php 5.3).
Ajouter dans mes_fonctions.php
Dans json-tousLesArticles.html
Pour afficher les marqueurs personnalisés, dans le fichier gmap_v3.js remplacer
par
Bon dev,
Répondre à ce message
Bonjour,
Je désire n’afficher que le point de l’article en cours, ou les points de la rubrique en cours...
Comment passer une variable d’environnement id_article ou id_rubrique à json-mesArticles ?
J’espérais faire un appel à
<INCLURE{fond=theme/js/gmaps_v3.js,nomCarte=cartePage,json=json-mesArticles#ID_ARTICLE} />
et traduire le
json-mesArticles-art#ID_ARTICLE
enspip.php?page=json-mesArticles&id_article=2
par le urlrewrite du .htaccessMais l’url de l’appel javascript est transformé en
http://www.site.com/spip.php?page=json-mesArticles-art2
donc impossible à transformer avec le .htaccess
Comment donc passer des paramètres ?
Si pas possible, pourquoi ne pas appeler l’url brute pour que l’on traite selon nos désirs par la suite ?
J’ai bricolé en surchargeant theme/js/geomaps_v3.js.html.
Rajouté une ligne pour intégrer le paramètre à l’appel du json :
et ajouté le paramètre à l’environnement d’appel :
Répondre à ce message
Google marquait « Pas trouvé ! » quand je recherchais une adresse en France.
Il faut lui spécifier la région dans formulaires/geocodage.html :
<script src="http://maps.google.com/maps/api/js?sensor=false®ion=FR" ...
Oupsss.. j’ai écrit des bêtises. Il ne trouve encore plus.
Maintenant il trouve. Ce devait être un problème du côté du serveur de Google Maps.
Répondre à ce message
Dans json-tousLesArticles.html, pour ne pas créer de tag quand latitude et longitude ne sont pas encore renseignés, on peut faire
{!ISNULL latitude}
:<BOUCLE_LesArticles(ARTICLES){par num titre}{!ISNULL latitude}>
Répondre à ce message
Bonjour,
Ah mais il y a une version 3 !
Est-ce la génération des marqueurs est absolument liée à la table Articles avec lat/lonx, ou bien suffit-il de personnaliser le fichier json pour que ça fonctionne avec rubriques ou d’autres objets éditoriaux ?
Attention comme indiqué, ça n’est pas « une version 3 ». C’est une version qui utilise l’API 3 de Google Maps et qui est bien moins aboutie que GIS. Pour l’instant ça n’est lié qu’à la table ARTICLES.
Pour faire propre il faudrait faire une table annexe pour lier aux objets de manière générale, ça n’est pour l’instant pas le cas :)
Répondre à ce message
Pourquoi ne pas avoir déclaré les champs extras latitude et longitude en float (et non text) comme dans gis ?
Parce que par défaut Champs Extra2 fait du TEXTE :p Mais c’est modifiable oui :)
Répondre à ce message
Bonjour à tous,
je ne sais pas si le code suivant est tres « academique » mais il a l’air de fonctionner chez moi correctement si cela peux vous servir ou vous inspirer.
Le centrage de la carte crée se fait aussi en fonction de la latitude et longitude issus de l’article.
un nouveau fichier que j’ai nommé « json-mes-articles.html » (a la racine du plugin Gmap) :
Appellé par « article.html » de mon squelette dont voici le code d’inclusion :
Pour visualiser les variables latitude, longitude et zoom inclusion de cette portion de code dans « article.html » apres le sous-titre de l’aricle :
la variable « zoomperso » provient en realité de l’article qui lors de sa creation a beneficié d’un « champ_extra » supplementaire
qui permet de donner un niveau de zoom directement dans la creation d’article comme Lat et Long,
implementé dans « /base/gmap_v3.php » de cette maniere :
(j’ai créé moi meme le champ « zoom » de type « text » a la main dans la table spip_article
pour ne pas perdre les Latitudes et longitudes existantes, mais une desactivation et re activation du plugin devrait s’en charger normalement
au risque de perdre le champs « latitude et longitude » installés au depart par le plugin... a voir pas essayé)
et enfin une modif du fichier « theme/js/gmap_v3.js.html » dont voici l’integralité :
Tout ceci est bien evidemment valable pour moi (testé avec ie8, firefox3.6) et peux ne pas fonctionner sur votre squelette
en esperant vous avoir aidé
Alex
Brillant !!!
On aimerait avoir ça natif dans le plugin ;-)
J’utilise cette fonction pour faire un plan d’une ville et renseigner cette carte par des emplacements différenciés. Malheureusement, je n’arrive désespérément pas à :
- afficher les logos des rubriques parentes
- n’afficher que l’emplacement du seul article (les différentes boucles ne semblent pas fonctionner...) et non de tous les articles...
Une idée ?
En tout cas merci pour ce script !!!
Autre énigme : comme TroOn, je voulais faire un test avant d’afficher, sur Latitude pourquoi pas.
J’obtiens l’erreur « Filtre zoom= non défini ».
J’ai essayé la méthode des inclusions successives, mais la carte ne s’affiche pas...
Des idées ?
Bonsoir, pour te repondre Benolaos, les diverses boucles ne marchent pas et c’est dû au « json » transmis au script JS (dans json-tousLesArticles.html) qui pourtant semble bien formé,mais qui foire quand on essaye de changer la definition de la boucle par ex :
{#ID_RUBRIQUE= #ENV{variable}}
alors que ça fonctionne avec{#ID_RUBRIQUE=5}
.J’ai contourné le probleme et posterais du code prochainement, j’utilise le script avec une table aditionnelle et non pas avec des articles donc il falait absolument que ça fonctionne, Pour le
[(#LATITUDE|oui) ]
cela ne fonctionne pas non et c’est du a SPIP qui visiblement (je me trompe peut-etre... si des specialistes de SPIP peuvent nous eclairer) a du mal à avaler un div inclus.Donc je suis parti sur autre chose qui sera plus orienté modele à inclure dans un article sous la forme
<cartegmap|>
par exemple qui sera plus facile a mettre en oeuvre sans modifier le code de l’article. pour peut-etre le mettre dans le plugin par la suite.Sabaidee Ad,
Hum, ça promet ! Et bien attendons donc patiemment que les développements se fassent pour le plus grand bien de la communauté SPIP. A bientôt, bonne chance et bonne année !!!
Bonjour ad.
Je t’invite à revoir déjà tes bases de SPIP sur les boucles :
http://www.spip.net/fr_article898.html
#ID_RUBRIQUE n’a jamais été (à ma connaissance) un critère de boucle, pas étonnant que ta boucle ne fonctionne pas :
{id_rubrique = #ENV{variable}}
semblerait plus indiqué dans ton cas.Quant au « div inclus » je ne sais pas ce que c’est.
[(#LATITUDE|oui) ici du HTML ]
fonctionnera parfaitement bien. J’ai surtout l’impression que tu as une boucle plutôt que du HTML certainement[(#LATITUDE|oui) <BOUCLEtruc> ]
, et ça, ça n’est pas permis. Si c’est ce que tu souhaites faire, tu dois alors utiliser des inclusions[(#LATITUDE|oui) <INCLURE truc> ]
avec inclure truc qui contient ta boucle -> http://www.spip.net/fr_article1828.html .J’ai l’impression qu’il te faut revoir un petit peu tes bases avant d’aller plus loin :)
Bonne soirée.
Bonjour xdjuj,
Pour aller encore plus loin (car j’ai essayé vraiment X possibilités où X>50), alors comment fait-on, en fing deu congte ? Parce que pour l’instant :
- (#LATITUDE ne fonctionne pas. Comment peut-on n’afficher les cartes que sur les articles renseignés ? Une idée, en fin de compte ?
- Toujours impossible de trouver une soluce pour n’afficher que le pointeur seul de l’article (et non tous les pointeurs d’un coup)
Car si en ce début d’année tu as la réponse à ces questions en suspend, il y en aura certainement pour apprécier (car il semble que nous soyons vraiment nombreux à vraiment kiffer ce plugin... et à en chercher des fonctionnalités supplémentaires).
Bonjour xdjuj,
Tu as parfaitement raison, sur le
#ID_RUBRIQUE= bla bla
grossières erreurs de retranscription sur mon post (et c’est pas la première mais je clique plus vite que mon ombre sur ce genre de choses, contrairement à mon habitude).Mais de toute manière, même avec un code spip « propre » sur le plugin entièrement d’origine, on ne peut pas modifier la boucle simplement, comme tu l’as indiqué, (dans le fichier de production du json) car cela ne fonctionne plus, malgré le fait que le json soit valide (enfin il me semble, il me semble surtout que le jQuery.getJSON n’as pas beaucoup d’humour ;) ) ou bien je suis passé a coté, ce qui est fort probable mais je ne suis visiblement pas le seul.
Pour le « div inclus » je pensais seulement au div que l’on rajoute pour afficher la carte sous le #INCLURE. mauvaise explication de ma part.
Pour ma méconnaissance SPIP, tu as encore raison, et pour me trouver une bonne excuse je ne l’utilise que depuis un mois et demi et ne suis pas sur d’avoir tout compris... mais bon je fais avec.
Le fait est que je ne veut pas modifier le code des rubriques ou articles pour insérer une carte et que je préfère la notion de « modèle », j’ai réussi à modifier le code fourni pour arriver à mes fins et c’est à mes yeux le principal même si ce n’est pas très « académique ».
Merci de tes éclaircissements et de t’être intéressé à mon post.
Merci encore a ceux qui partagent avec nous des plugins aussi sympa que celui-ci.
Bonne journée.
Alex
Bonjour Benolaos
Désole si le style informatique est un peu tiré par les cheveux (spip et javascript mélés pas terrible...) mais bon moi il me sert bien, probleme quand même avec les bulles des marqueurs qui ne fonctionnent pas correctement (je les ais desactivées dans ce bout de code)...
Donc ci-dessous un petit script qui doit se deposer dans un repertoire « modeles » que tu auras créé dans le plugin
googlemaps.
il se nomme chez moi testmap.html, tu le nomme comme tu veux !
à condition de l’appeller correctement depuis l’article ou tu le positionneras
il est appellé directement dans le texte d’un article (espace privé) de cette maniere par exemple :
les parametres sont en commentaires dans le code
attention à bien center la carte et le niveau de zoom.
En esperant que cela puisse au moins servir à une personne, en attendant que je comprenne mieux comment le javascript fonctionne (mais pas le temps pour l’instant je me bat avec les boucles spip).
A plus
Alex
Répondre à ce message
Re bonjour,
Je me heurte a un pb dans le code que j’ai soumis à l’instant
dans le fichier « json-mes-articles.html » la boucle article :
Le pb est que le filtre par id_rubrique ne fonctionne pas et j’affiche sur la carte des marqueurs issus d’article provenant d’autres rubriques.
Quelqun aurait t’il une idée ? probleme d’envoi du contexte ?
Merci
Bonne journée
Alex
Re bonjour xdjuj,
Comme je le signifiais à l’instant, j’ai écris sur les posts sans me relire avant de cliquer.
La preuve sur le post du dessus ou je pensais écrire
{id_rubrique= #bla bla}
et non pas{par id_rubrique}
qui ne veut effectivement rien dire.Désolé, je comprends que vous ne puissiez pas m’aider dans ce cas précis.
Merci encore.
Alex
Je ne sais plus où sont tes problèmes en fait :D
Essaye une boucle genre
<BOUCLE_LesArticles(ARTICLES){id_article}>
pour afficher sur tes articles.Sinon comme indiqué c’est une contrib en chantier, elle est vide de variantes pour le moment, elle est donc plutôt destinés à ceux qui savent déjà utiliser l’API de Google.
Tu trouveras 2 plugins parfaitement fonctionnels, beaucoup plus complets et activement tenus à jour ici :
Ca te fera sûrement gagner du temps tant que cette contribution n’est pas plus avancée :)
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |