Api google et 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 : Api google et xml

par jeff » 29 nov. 2005, 14:00

sous mozilla mon probleme c'est le parcours demon fichirer xml
      			if (request.readyState == 4) {//si les données sont charger on passe a la suite
      			var xmlDoc = request.responseXML;
      			var markers = xmlDoc.documentElement.getElementsByTagName("agence");//on se place sur les noeuds agences
      			document.getElementById('essai').innerHTML="nombre d'agences"+ markers.length;
      			for (var i = 0; i < markers.length; i++) {
      				document.getElementById('bl').innerHTML=": varibale"+i;
      				document.getElementById('essai').innerHTML=": longitude: "+ parseFloat(markers[i].childNodes[2].nodeValue);//on devrai recuperer la longitude
      				//document.getElementById('essai').innerHTML=": longitude: "+markers[i].getElementsByName('codeP').value);
 
      			}
je pense etre au bon niveaux pour recupere la valeur de la longitude non :?:

quand à Ie6 il bloque sur la premiere ligne :?
sur la creation de lobjet GMap

par jeff » 28 nov. 2005, 22:28

sinon un lien qui peut servir, j'ai jamais utilsé ce "truc",
:mrgreen: je l'ai decouvert ce matin, c'est meme celui qui m'ammené dans cette galére

moi aussi j'aprend sur le tas, en plus ma connexion est pas terrible en ce momment alors pour fgaire des testes c'est galère :?

tant que j'y pense avec cette ligne
j'ai 2 resultat different
document.write('variable:'+i+'<br/>');
sous ie variable:0
et sous FF variable:0,variable:1

par Truc » 28 nov. 2005, 22:22

fait en autant avec les autres variables, celles pour les points
markers.childNode(2).nodeValue


sinon un lien qui peut servir, j'ai jamais utilsé ce "truc", j'apprend sur le tas :lol:

fait de petits tests avant de t'attaquer au gros morceau :wink:

par jeff » 28 nov. 2005, 22:09

c'est fait et il m'affiche 2, donc c'est bon
:?

par Truc » 28 nov. 2005, 22:05

affiche son contenu avant de lancer la boucle (ou meme la mettre en commentaire pour tester):
alert("longueur= "+markers.length);

par jeff » 28 nov. 2005, 21:43

la ligne qui pose probleme est celle ci
for (var i = 0; i < markers.length; i++) {
markers.lenght doit etre indefinie

par jeff » 28 nov. 2005, 21:29

j'ai corriger
   function onload()
    {
    	var map = new GMap(document.getElementById("map"));
    	map.addControl(new GSmallMapControl());
    	map.addControl(new GMapTypeControl());
    	//on centre sur paris
    	map.centerAndZoom(new GPoint(2.20, 48.50), 12);

    	var request = GXmlHttp.create();
    	request.open("GET", "http://localhost/projet_ing/essaifrance/data.xml", true);//appel du fichier xml par XMLHttpReques
    	request.onreadystatechange = function() {
    		if (request.readyState == 4) {//si les données sont charger on passe a la suite
    		 //alert(request.responseText);
    		var xmlDoc = request.responseXML;
    		var markers = xmlDoc.documentElement.getElementsByTagName("agence");//on se place sur les noued agences
    		//document.write(markers.lenght);
    		for (var i = 0; i < markers.length; i++) {
    			document.write('id'+markers[i].getAttribute('id'));
    			var point = new GPoint(parseFloat(markers[i].childNode(2).nodeValue),
    			parseFloat(markers[i].childNode(1).nodeValue));
    			var marker = new GMarker(point);
    			map.addOverlay(marker);
    		}
    		}
    	}
    	request.send(null);
le probleme cest que ca a l'air de faire une boucle infinie (sous ff fenetre qui se charge indefiniment)ou un truc du genre

par Truc » 28 nov. 2005, 20:50

Salut, j'ai pas vraiment plongé le nez dans le code mais tu as a plusieur reprises "ChidlNode" a la place de "ChildNode""
var point = new GPoint(parseFloat(markers[i].chidlNodes("longitude").value)
document.getElementById("essai").value="longitude"+markers[i].chidlNodes(2).value

par jeff » 28 nov. 2005, 18:46

bon en fait le fichier est bien charger
sous ie j'ai un message d'erreur sur la ligne 24
var markers = xmlDoc.documentElement.childNode("agence");
documentElement.childNode cet obket ne gere pas cette propriete ou cette methode
var markers = xmlDoc.documentElement.getElementsByTagName("agence")
enleve l'erreur :)

mais ensuite j'ai une page blanche :?

Api google et xml

par jeff » 28 nov. 2005, 16:13

salut
je veux afficher sur une carte des agences d'une chaine de distribution avec google.

j'essaye de parcourir un document xml avec js
mais c'est sans succes
	function onload()
    {
    	var map = new GMap(document.getElementById("map"));
    	map.addControl(new GSmallMapControl());
    	map.addControl(new GMapTypeControl());
    	//on centre sur paris
    	map.centerAndZoom(new GPoint(2.20, 48.50), 12);

    	var request = GXmlHttp.create();
    	request.open("GET", "data.xml", true);//appel du fichier xml par XMLHttpReques
    	request.onreadystatechange = function() {
    		if (request.readyState == 4) {//si les données sont charger on passe a la suite
    		var xmlDoc = request.responseXML;
    		var markers = xmlDoc.documentElement.getElementsByTagName("agence");//on se place sur les noued agences
    		for (var i = 0; i < markers.length; i++) {
    			var point = new GPoint(parseFloat(markers[i].chidlNodes("longitude").value),
    			parseFloat(markers[i].childNodes("latitude").value));
    			var marker = new GMarker(point);
    			map.addOverlay(marker);
    			document.getElementById("essai").value="longitude"+markers[i].chidlNodes(2).value+"<br/>";
    		}
    		}
    		else
    			document.write("<strong>le fichier n'est pas chargé : "+request.readyState+"</strong><br/>");
    	}
    	request.send(null);
    }
et voici le fichier xml

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"> <agences> <agence id="1"> <enseigne>APE</enseigne> <latitude>45.12</latitude> <longitude>05.42</longitude> <adresse>3, rue Emile Zola</adresse> <codeP>38100</codeP> <ville>Grenoble</ville> <telephone>04 76 43 22 27</telephone> <mail></mail> <fax></fax> <description></description> </agence> <agence id="2"> <enseigne>APE</enseigne> <latitude>45.27</latitude> <longitude>04.22</longitude> <adresse>Z.I. Necker - Rue Necker</adresse> <codeP>42000</codeP> <ville>Saint Etienne</ville> <telephone>04 77 25 02 24</telephone> <mail></mail> <fax></fax> <description></description> </agence> </agences>
apparement le fichier n'est pas charge
voici le message


merci

Code : Tout sélectionner

le fichier n'est pas chargé : 1 le fichier n'est pas chargé : 2 le fichier n'est pas chargé : 3
les numero correspondent a l'etat readyState