banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 20 January 2016 14:54

Francois Gueydon
Participant actif
Lieu: Castelnaud la Chapelle
Date d'inscription: 17 Jun 2015
Messages: 69

Ajout de données d'un xml sur leaflet

Bonjour à tous,
j'essaye en ce moment d'ajouter des données venant d'un flux xml sur leaflet et je m'y casse les dents.
J'ai suivi ce tuto qui me semble plutôt clair: http://erica.altschul.info/Tutorial_XML-to-Leaflet.pdf
hélas, autant j'arrive à afficher une liste des données xml dans une div, autant quand il s'agit de les inclure sur une carte leaflet je bloque..

en gros mon code pour essayer d'appeler les données xml dans un marker leaflet:

//appel du document xml
    $(document).ready(function()
{
$.ajax({
type: "GET",
url: "542Tutorial_01.xml",
dataType: "xml",
success: parseXml
});
});


//ajout d'un marker se servant des données xml

        L.marker([$(this).find("lat").text(),
$(this).find("long").text()]).addTo(map);


Etant néophite en ajax je me dis que c'est peut etre une grossiere erreur de syntaxe, quelqu'un aurait une idée?


La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/

Hors ligne

 

#2 Thu 21 January 2016 10:41

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: Ajout de données d'un xml sur leaflet

Bonjour,
Quelle est votre fonction parseXml?
le "this" fait référence à la fonction, non?
Je ferais plutôt comme ça :

Code:

 function parseXml(data){
console.log(data)
}

"data" est le contenu du xml

Hors ligne

 

#3 Thu 21 January 2016 11:37

Francois Gueydon
Participant actif
Lieu: Castelnaud la Chapelle
Date d'inscription: 17 Jun 2015
Messages: 69

Re: Ajout de données d'un xml sur leaflet

Et bien mon code d'appel du xml au complet  donne ça:

<script>                
    $(document).ready(function()
{
$.ajax({
type: "GET",
url: "542Tutorial_01.xml",
dataType: "xml",
success: parseXml
});
});

function parseXml(xml)
{
$(xml).find("point").each
(function()
{
$(this).find("lat").text(),
$(this).find("long").text()
});
}


puis ensuite mon code leaflet dans lequel j'essaye d'ajouter les données du xml avec L.marker mais ca ne marche pas.

J'avoue ne pas vraiment maitriser le javascript, c'est surtout que je n'arrives même pas à faire fonctionner le code du tuto.


La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/

Hors ligne

 

#4 Fri 22 January 2016 11:19

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: Ajout de données d'un xml sur leaflet

En fait il nous faudrait le XML ou au moins la sortie de la fonction parseXml

console.log est ton ami dans pour debugger

Code:

function parseXml(xml)
{
$(xml).find("point").each
(function(){
   console.log($(this).find("lat").text());
   console.log($(this).find("long").text());
});
}

Hors ligne

 

#5 Fri 22 January 2016 14:13

Francois Gueydon
Participant actif
Lieu: Castelnaud la Chapelle
Date d'inscription: 17 Jun 2015
Messages: 69

Re: Ajout de données d'un xml sur leaflet

mon xml est une copie de celui ci: http://erica.altschul.info/542Tutorial_01.xml

En fait j'essaye juste de reproduire l'exercice donné dans le tuto et d'afficher les points dans leaflet (avant d'essayer avec d'autres xml).
N'ayant jamais fait de ajax avant ce tuto, j'ai bien du mal a comprendre les subtilités des fonctions.


La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/

Hors ligne

 

#6 Fri 22 January 2016 15:48

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: Ajout de données d'un xml sur leaflet

Le code un peu clarifié mais pas testé
J'ao ajouté un parseFloat pour convertir les coordonnées de text en décimale.

Code:

$.ajax({
  type: "GET",
  url: "le_xml.xml",
  dataType: "xml",
  success: parseXml,
  error:function(e){
   console.log('ko') //y'a une erreur
   console.log(e) // on affiche l'erreur
  }
});

function parseXml(xml) {
  console.log('ok') 
  $(xml).find("point").each(function() {
     var lat =parseFloat($(this).find("lat").text());
     var lng = parseFloat($(this).find("long").text());
     L.marker([lat,lng]).addTo(map);
  });
}

Hors ligne

 

#7 Mon 25 January 2016 09:53

Francois Gueydon
Participant actif
Lieu: Castelnaud la Chapelle
Date d'inscription: 17 Jun 2015
Messages: 69

Re: Ajout de données d'un xml sur leaflet

Merci beaucoup j'arrives enfin à afficher le xml sur leaflet!  Ya encore pas mal de boulot pour tout comprendre mais au moins c'est un exemple qui marche, bon point de départ pour décortiquer tout çasmile


La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/

Hors ligne

 

Pied de page des forums

Powered by FluxBB