de demande d'aide pour finir mon code googlemap +xml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : de demande d'aide pour finir mon code googlemap +xml

de demande d'aide pour finir mon code googlemap +xml

par latitude » 21 avr. 2007, 19:18

bonjour,

voilà, je suis en train de travailler sur l'api googlemap pour mettre en ligne une map qui affiche des points qui sont listés dans un fichier XML

voici la structure du fichier XML (j'ai pas le choix, c'est un fichier que je récupère et qui est généré par une autre application)

Code : Tout sélectionner

<markers> <marker mapid="1" title_map="Opey dePlace" lng="100.88497281074524" lat="12.928119252158105" cat="hébergement" username="admin" text="Opey dePlace" date="" url_location="http://www.siterefdupoint.com/" url_thread="" img_location="http://www.sitetest.com/GoogleImages/DSCN6316.JPG" type="green"/> </markers>
donc dans ce marqueur j'ai toutes les infos que j'ai besoin,
pour l'instant j'ai réussi à traiter les points, pour un affichage simple (voici mon code)

Code : Tout sélectionner

<script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(12.934299, 100.884705), 15); map.setMapType(G_SATELLITE_MAP); function creerMarker(point, onglet1, onglet2) { var marker = new GMarker(point); var infoTabs = [ new GInfoWindowTab("Infos", onglet1), new GInfoWindowTab("Détails", onglet2) ]; GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowTabsHtml(infoTabs); }); return marker; } GDownloadUrl("spotmarkers.xml", function(data, responseCode) { 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("lng"))); var marker = creerMarker(point, markers[i].getAttribute("title_map"), markers[i].getAttribute("text")); map.addOverlay(marker); } }); } } //]]> </script>
donc pour l'instant j'affiche tout les point avec une infobulle, mais ils ont tous l'icone par defaut de google
je voudrais récupérer la valeur "type" du XML pour leur donner un icone personnalisé (red,green etc...)

j'ai bien compris que je devais récupérer la donnée pour définir le nom de l'icone à afficher (un truc genre :

Code : Tout sélectionner

var icon = new GIcon(); icon.image = "http://www.monsite.com/images/mm_20_"+ color +".png"; icon.shadow = "http://www.monsite.com/images/mm_20_shadow.png"; icon.iconSize = new GSize(12, 20); icon.shadowSize = new GSize(22, 20); icon.iconAnchor = new GLatLng(20, 2); icon.infoWindowAnchor = new GLatLng(1, 5); return icon;
mais là j'avoue j'y arrive plus, je n'arrive pas à l'intégré à ma fonction "creerMarker", j'arrive au limite de ma compténce (déjà pour faire ça j'ai pas mal bidouiller des morceau de code sans tout bien comprendre)
, je patauge depuis un moment et
si quelqu'un pouvais m'aider, merci