Pb code google maps / Affichage de pls points geolocalisés
Consultez la formation Google Maps, News, Images de WebRankInfo / Ranking Metrics
- Or3
- Nouveau WRInaute

- Messages: 10
- Inscription: 26 Nov 2007
Pb code google maps / Affichage de pls points geolocalisés
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: Tout sélectionner
<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: Tout sélectionner
<?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
-

webmasterlamogere - WRInaute passionné

- Messages: 1874
- Inscription: 17 Déc 2006
Pour un exemple qui marche avec un fichier XML : http://annuaire.lamogere.fr/carte.html
- Or3
- Nouveau WRInaute

- Messages: 10
- Inscription: 26 Nov 2007
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....
Aurélie
-

webmasterlamogere - WRInaute passionné

- Messages: 1874
- Inscription: 17 Déc 2006
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.
- Or3
- Nouveau WRInaute

- Messages: 10
- Inscription: 26 Nov 2007
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
Formation recommandée sur ce thème :
Formation Google Maps, Google News et Google Images : apprenez comment optimiser le référencement de votre site pour la recherche universelle et notamment Google Maps, Google Actualités et Google Images. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- affichage de google maps en 1ere position
- Nouvel affichage d'une fiche détaillée dans Google Maps (sept. 2009)
- points biz, eu, et autres points exotiques
- Google doit censurer ses maps (Google Earth, Google Maps)
- Maps iphone, google maps et liens sponsorisés
- Position du H1 dans le code et affichage
- Balise <h> : affichage et position dans le code
- question css 'ordres affichage/code'
- affichage des mots incorrectes dans le code source
- PR toujorus à zero après pls mois...
Consultez la description détaillée des produits ou services de Google suivants : Google Maps Navigation, Google Code, Google Web Toolkit, Google Maps API
- Test du code HTTP d'une page
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
