Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Pb code google maps / Affichage de pls points geolocalisés

Poster un nouveau sujet Imprimer cette discussion    Forum -> Google Images, Google Vidéos et Google Maps   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Or3
Nouveau WRInaute

Inscrit le: 26 Nov 2007
Messages: 9

URL permanente de ce messagePosté le : Lun Nov 26, 2007 14:00    Sujet du message: Pb code google maps / Affichage de pls points geolocalisés

Bonjour à tous !

Déjà merci pour ce forum, je suis ravie de découvrir qu'il existe, car google devient si important !

Alors pour ma part je m'attaque un peu aux google maps.
Mon but : faire afficher plusieurs points avec infos (au clic sur le point) d'un fichier xml (que je génère en dynamique de ma base de données) sur 1 google map.
Je veux utiliser le gecoding, c'est-à-dire le faire à partir d'adresses.

Voici mon code javascript :

Code:

<script type="text/javascript">
     //<![CDATA[
     var geocoder = null;
   
     function load()
    {
       if (GBrowserIsCompatible())
      {
         var map = new GMap2(document.getElementById("map"));
         map.addControl(new GSmallMapControl());
         map.addControl(new GMapTypeControl());
         //map.setCenter(new GLatLng(48.7, 2.3), 8);
      
       geocoder = new GClientGeocoder();
       if (geocoder)
       {
        var address = "HAUTE-SAVOIE";
        geocoder.getLatLng
        (
           address,
           function(pt)
           {
            if (!pt)
            {
              alert(address + " not found");
            }
            else
            {
               //positionnement de la carte
               map.setCenter(pt, 8);
               
               ///affichage des points du xml
               function creerMarker(point, onglet1, onglet2)
               {
                  var marker = new GMarker(point);
                  var infoTabs = [
                   new GInfoWindowTab("Infos", onglet1),
                   new GInfoWindowTab("Détails", onglet2)
                   ];
                  GEvent.addListener(marker, "click", function() {
                   marker.openInfoWindowTabsHtml(infoTabs);
                   });
                  return marker;
               }
               
               GDownloadUrl("donnees.xml", function(data)
               {
                  var xml = GXml.parse(data);
                  var markers = xml.documentElement.getElementsByTagName("marker");
                  
                  for (var i = 0; i < markers.length; i++)
                  {
                    add = markers[i].getAttribute("adresse");
                    info = markers[i].getAttribute("info");
                   details = markers[i].getAttribute("details");
                  
                    geocoder.getLatLng
                   (
                       add,
                       function(p)
                       {
                         alert(info);
                         marker = creerMarker(p, info, details);
                          map.addOverlay(marker);
                       }
                    );
                   
                  }
               });
            }
           }
         );
        }
 
       }
     }
 
     //]]>
     </script>


et mon code xml :

Code:

<?xml version="1.0" encoding="utf-8" ?>
<markers>
   <marker adresse="AIX LES BAINS" info="JuJu city" details="Quelques informations supplémentaires" />
   <marker adresse="RUMILLY" info="Chez moi !" details="Quelques informations supplémentaires" />
   <marker adresse="ANNECY" info="Annecy, le lac, les montagnes" details="Quelques informations supplémentaires" />
   <marker adresse="GENEVE" info="Geneve, capitale de la Suisse" details="Quelques informations supplémentaires" />
</markers>



Les 4 points de mon doc xml s'affiche bien à 4 endroits bien distincts.
Mais le souci est qu'ils ont tous la même "info" et "details", à savoir l'attribut "info" du dernier noeud de mon xml.
Je pense que le problème vient du fait que ma fonction est réecrasée à chaque passage de la boucle et qu'elle est donc établie au dernier noeud...
Comment faire pour résoudre cela ?

Sinon si vous avez des exemples du même type, je suis preneuse !

Merci énormément de votre aide !

Aurélie


Dernière édition par Or3 le Lun Nov 26, 2007 15:25; édité 1 fois
 
Or3
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1502
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Lun Nov 26, 2007 15:12    Sujet du message: Pb code google maps / Affichage de pls points geolocalisés

je mettrais "map.addOverlay(marker);" avant "GEvent.addListener(marker, "click", function() { "

Pour un exemple qui marche avec un fichier XML : http://annuaire.lamogere.fr/carte.html
 
webmasterlamogere Visiter le site web du posteur
Or3
Nouveau WRInaute

Inscrit le: 26 Nov 2007
Messages: 9

URL permanente de ce messagePosté le : Lun Nov 26, 2007 15:20    Sujet du message: Pb code google maps / Affichage de pls points geolocalisés

merci de ton aide ! Surprised)
Mais malheureusement ce n'est pas çà....
L'exemple est là :
http://www.daniel-guerin.com/test3.php

Comme tu peux le voir, tous mes points on la même info, qui est celle du dernier neud de mon xml
(et je pense que c ma fonction qui s'écrase avec la boucle et prend donc en compte que la derniere valeur)..

L'exemple que tu m'as donné utilise en effet un xml, mais malheuresement pas la géolocalisation.
Je ne veux pas positionner mes points à partit de Longitude et Latitude mais à partir de l'adresse postale....

hummm....
Confused

Aurélie
 
Or3
webmasterlamogere
WRInaute accro
WRInaute accro

Inscrit le: 17 Déc 2006
Messages: 1502
Localisation: urlrewriting.fr

URL permanente de ce messagePosté le : Lun Nov 26, 2007 16:14    Sujet du message: Pb code google maps / Affichage de pls points geolocalisés

il est beaucoup plus performant de déterminer la lat/long avant avec le géocodeur et de la mettre dans le fichier XML (une seule détermination).
Je pense que l'erreur vient du fait que la déclaration de la fonction creerMarker se trouve dans la fonction load. Il faut la décaler avant ou après.
 
webmasterlamogere Visiter le site web du posteur
Or3
Nouveau WRInaute

Inscrit le: 26 Nov 2007
Messages: 9

URL permanente de ce messagePosté le : Lun Nov 26, 2007 16:45    Sujet du message: Pb code google maps / Affichage de pls points geolocalisés

D'accord avec toi sur la géolocalisation au préalable !
Mais grrrr m'énerve de pas trouver comment faire...le problème ne vient pas de la place de la fonction (je l'ai bougé, pas de changement)
Je sais que l'erreur vient du fait que lorsque creerMarker() est appelé mes variables vallent toutes la valeur du dernier noeud.
et qu'il me faudrait une sorte de propriété valable dans la boucle..
Mais là je touche vraiment plus à du javascript pur et dur....

(soupir)

Merci pour tout en tous cas !

Aurélie
 
Or3
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Google Images, Google Vidéos et Google Maps Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort