| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
Or3 Nouveau WRInaute
Inscrit le: 26 Nov 2007 Messages: 9
|
Posté 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 |
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1502 Localisation: urlrewriting.fr
|
Posté 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 |
|
| |
|
 |
Or3 Nouveau WRInaute
Inscrit le: 26 Nov 2007 Messages: 9
|
Posté le : Lun Nov 26, 2007 15:20 Sujet du message: Pb code google maps / Affichage de pls points geolocalisés |
|
|
merci de ton aide ! )
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 accro

Inscrit le: 17 Déc 2006 Messages: 1502 Localisation: urlrewriting.fr
|
Posté 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. |
|
| |
|
 |
Or3 Nouveau WRInaute
Inscrit le: 26 Nov 2007 Messages: 9
|
Posté 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 |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|