effectivement on a pas poussé très loin dans la création du xml ...
il faudra surement rajouter un entete au fichier xml
A+
Hors ligne
Le XML se génèrant à chaque fois, j'ai ajouté ceci :
$xml_infos = "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?><markers>\n";
L'affichage est correct sous Firefox (voir l'icône jaune), pas d'erreur quand j'affiche la page Xml sous IE, mais toujours pas d'affichage des icônes sous ma version d'IE (6.0) avec le message en bas de page "Terminé mais il y a des erreurs sur la page", si j'écris Mides au lieu de Midès ça marche.
Il faut peut-être faire une transco des caractères comme cela est fait pour l'apostrophe qui est codée en & # 0 3 9 ;
Hors ligne
En faisant du htmlentities() sur les zones de texte ça marche sous IE !
(Par rapport au source initial, j'ai en plus le chargement du nom de l'image).
$xml_infos = "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?><markers>\n"; while ($row1 = mysql_fetch_array($result1)) { $query2 = ' SELECT DISTINCT(category_id) FROM '.IMAGE_CATEGORY_TABLE.' WHERE image_id = '.$row1['id'].' '.($user['forbidden_categories'] != '' ? 'AND category_id NOT IN ('.$user['forbidden_categories'].')' : '').' ;'; $result2 = pwg_query($query2); $row2 = mysql_fetch_array($result2); $query3 = ' SELECT name FROM '.CATEGORIES_TABLE.' WHERE id = '.$row2['category_id'].';'; $result3 = pwg_query($query3); $row3 = mysql_fetch_array($result3); $xml_infos .= '<marker '; $xml_infos.= encodeAttribute('id', $row1['id']); $xml_infos.= encodeAttribute('cat', $row2['category_id']); $xml_infos.= encodeAttribute('catname', ($row3['name'])); $xml_infos.= encodeAttribute('lat', $row1['latitude']); $xml_infos.= encodeAttribute('long', $row1['longitude']); $xml_infos.= encodeAttribute('pointer', $row1['pointer']); $xml_infos.= encodeAttribute('shadow', $row1['shadow']); $xml_infos.= encodeAttribute('size', $row1['pointersize']); $xml_infos.= encodeAttribute('path', get_thumbnail_src($row1['path'], @$row1['tn_ext'])); $xml_infos.= encodeAttribute('file', $row1['file']); $xml_infos.= encodeAttribute('name', htmlentities($row1['name'])); $xml_infos .= " />\n"; } $xml_infos.= '</markers>'; file_put_contents ('./modules/google_maps/xml/'.$user['username'].'_data.xml',$xml_infos);
Hors ligne
salut
J'ai beau tourner et virer , j'ai des problèmes avec la version 2 :
--> Je n'ai pas d'affichage des repères .
--> Je suis obligé d'écrire directement dans le data.xml pour certains renseignements .
--> J'ai essayé le mettre la modif de Nadia pour avoir le nom de la photos en dessous de la vignette , marche pas ....
--> Je pense que mon problème vient de php4/php5 .
Je vais donc revenir à la version 1 qui marchait bien .
A +
Hors ligne
Pour mettre le nom de la photo il faut faire plusieurs modifs dans createMarker() car il faut que la variable name soit passée, chargée et affichée. Et il faut d'abord qu'elle soit dans le fichier XML (le bout de code précédent). J'ai remplacé dans le bout de code ci-dessous l'affichage de file par celui de name. Il y a aussi la correction sur size.
// Creates a marker at the given point with the given number label function createMarker(point, cat, id, catname, path, file, pointer, shadow, size,name) { var icon = new GIcon(); if (size == 0 ) { icon.image = "{GMAP_DEFAULT_POINTER}"; icon.shadow = "{GMAP_DEFAULT_SHADOW}"; icon.iconSize = new GSize(12, {GMAP_DEFAULT_SIZE}); icon.shadowSize = new GSize(22, {GMAP_DEFAULT_SIZE}); icon.iconAnchor = new GPoint(6, {GMAP_DEFAULT_SIZE}); } else { icon.image = pointer; icon.shadow = shadow; icon.iconSize = new GSize(12, size); icon.shadowSize = new GSize(22, size); icon.iconAnchor = new GPoint(6, size); } icon.infoWindowAnchor = new GPoint(5, 1); var marker = new GMarker(point, icon); var msg = "<center><b>" +catname+ "</b></center><a href='./picture.php?/"+ id +"/category/"+cat+"' title="+name+"><img src='"+path+"'/></a><center><b>" +name+ "</b></center>"; GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(msg);}); return marker; } // Download the data in data.xml and load it on the map. The format we GDownloadUrl(xmlfile, function(data) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("long"))); map.addOverlay(createMarker(point, parseFloat(markers[i].getAttribute("cat")), parseFloat(markers[i].getAttribute("id")), markers[i].getAttribute("catname"), markers[i].getAttribute("path"), markers[i].getAttribute("file"), markers[i].getAttribute("pointer"), markers[i].getAttribute("shadow"), markers[i].getAttribute("size"), markers[i].getAttribute("name") )); } }); }
Hors ligne
Et il faut vider le cache dès que tu fais une modif !
Hors ligne
Si l'on change la taille du pointeur ne faudrait-il pas changer le premier paramètre que l'on passe à GSize() ?
icon.iconSize = new GSize(12, size);
Car quand je passe de 20 à 10 l'icône est moins haut mais toujours aussi large ce qui n'est pas beau !
Hors ligne
Salut,
Bon, je n'étais pas passé depuis un moment, pb de temps. J'ai terminé une partie de la modification pour la gestion des droits. Désormais chaque user aura un cache google dans une table et c'est un fichier php qui envoie le contenu du xml. Le site
D'ailleurs l'entête utf8 est déclaré. Mais il faudra convertir les données ce qui reste à faire.
Au passage, si nous sortons deux Mods chacun de notre côté sous forme de fork, ca risque de poser problème Nicco. Tu as déjà sorti une V2 alors que sur le repository central du Mod on est toujours en 1.0.1-SNAPSHOT (une béta) et aucune de tes modifs n'y est reporté. Surtout que j'aurais aimé parlé des choix possibles concernant les icônes. C'est justement ca le danger du fork dont on parlait plus tot.
Sur le mod, ce qu'il me reste à faire :
- encodage utf8 des valeurs
- purge du cache google lors de certaines actions admins
- ajout d'une page d'admin google map, peut être plus d'option par exemple "forcer la resynchro google map en cas de modifications de droits", "Icones de base" ou d'autres.
Dernière modification par hugo (2006-11-01 14:17:56)
Hors ligne
Salut à tous,
Ce mod est géniiiaaaaaaaaaal !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :-))
Pour pouvoir le faire fonctionner en PHP 4.4.4, j'ai rajouté :
if(!function_exists('file_put_contents')) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
if(!$fp) {
trigger_error('file_put_contents ne peut pas écrire dans le fichier.', E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}
Dans 'gmap.php' juste après le cadre functions et dans 'site-update.php' après le cadre de présentation.
Cela fonctionne correctement. Juste que, je n'ai pas trouvé le fichier 'data.xml' dans la version 2 du Mod. A quoi sert-il ? Où peux-t-on le trouver ? Où faut-il le placer ?
J'ai utilisé les liens ping pong, pour que lorsque que je clique sur la photo, celle-ci me renvoie à la galerie correspondante et non à une seule photo.
Bonne continuation pour ce mod.
Bonne journée 'pourrie' (pour le temps ;-) 1 novemebre oblige)
PS : se serait génial que les champs de saisies (Lat, Long, marker) soit également accessible de la rubrique gérer dans admin et pas seulement dans 'modifier les informations' sur la page picture.
Hors ligne
Bonjour
Est-il possible de faire disparaitre la bulle dans laquelle apparait la vignette ?
Je vais tester les modifs indiquées précédemment par iphoto car pour l'instant seul la version N°1 est stable chez moi .
A +
Hors ligne
Je viens d'ajouter une petite modif à ma carte du Sahara : la limite nord !
A voir s'il ne serait pas intéressant d'ajouter la possibilité de dessiner des itinéraires sur les cartes...
Bon, je vais faire la limite sud maintenant...
Hors ligne
Salut,
deja je commence par faire un GROS mea culpa car j ai pas assuré pour la v2 ...
j ai voulu mettre en ligne cette version qui n a rien d officiel par rapport au futur du mod pour faire plaisir a ceux qui avaient demandés des modifs
mais c est clair que c etait pas une bonne idee !
du coup j ai stoppé le partage de ces versions et j ai modifié les postes correspondants !!!
voila donc promis je ne le ferai plus meme si vous insistez ... ;o)
bon maintenant j ai installé le soft pour SVN mais je ne sais pas le parametrer
pour la partie icone ... j ai fais ca vite fais mais je ne veux rien definir comme definitif :
donc dans l idee je pense que ca serai bien de pouvoir choisir son icone par image ... et si rien n est parametré il y a les parametrages par defauts qui prennent le relais !
donc moi j ai noté 3 parametres = marker - shadow et size
maintenant je ne sais pas si j ai tout bien fait comme il faut dans ma maquette
voila ... encore une fois desole pour le FORCK
a+
Hors ligne
Je trouve que ta V2 marche pas mal du tout, c'est bien de pouvoir mettre des icônes différentes.
Suite à mon ajout de la fonction GPolyline(), ça marchait bien sous Firefox mais pas sous IE.
J'ai rajouté dans header.tpl :
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
Car j'ai trouvé ça :
Internet Explorer renders polylines using VML - a vector markup language.
Cette ligne étant sur des pages où ça marchait sous IE je l'ai mise.
Hors ligne
S'il vous plait, marchez dans les traces d'Hugo... Suivez ses conseils.
Le MOD est mal parti, ce n'est pas grave.
Il est encore temps de redresser la barre.
Les principes sont fixés, très bien.
Mais... (Je reviens expliquer ce "mais" dans un autre post).
8-)
Hors ligne
J'ai dit "Mais...", alors je m'explique. 8-)
Le MOD proposé par Hugo, MOD non intrusif donne un accès à une carte avec ses petits marqueurs lesquels montrent des miniatures, ces dernières dirigeant vers la page picture correspondante.
Ok.
Le besoin, n'était-il pas avant tout inverse? J'explique.
Moi, quand je visite une galerie comme celle de Hugo, et je me demande souvent:
"Mais où, diable, a été prise cette photo exactement?"
Et pas:
"Tiens! Il ne se fatigue pas l'ami Hugo, il a collé un lien vers Google Maps dans son menu, je n'vais pas y aller pour 2 raisons:
Je connais Google Maps.
Je vais perdre encore 1 heures sur les cartes/photos d'il y a trois ans et plus..."
Pour répondre au vrai besoin ce qui serait géant, sur la page picture/catégorie serait d'avoir un lien "C'était où? Sur une carte!" (lien présent uniquement quand la latitude et la longitude sont connues).
Le fichier xml contient :
- les coordonnées de l'image vue,
+5/6 coordonnées autres images au hasard,
+ (voire plus tard les coordonnées des catégories parentes et soeurs).
La couleur du marqueur de l'image vue étant dans une autre couleur que les autres.
L'appel de Gmap2 serait centré sur l'image vue.
Alors dans ce projet, il y a de la place pour tout le monde.
8-)
Hors ligne