IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

API et xml [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 84
    Points : 101
    Points
    101
    Par défaut API et xml
    Bonjour,

    juste un petit soucis, j'ai un peu le nez dans le gidon et je ne trouve pas :
    je cherche a afficher un info-bulle sur un marqueur a l'aide d'un fichier XML, jusque la tout va presque bien sauf que je ne récupère qu'un partie des données:
    mon fichier xml est géré comme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <markers>
    <marker lat="" lng="" type="" nom="" adresse="" codepostal="" ville="" />
    </markers>
    la position du marqueur est correcte l'info-bulle apparait, le premier champs "type" affiche sa valeur dans l'info-bulle, mais pas les autres champs (nom, adresse, codepostal, ville),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    GDownloadUrl('data.xml', function(data) {
                map.clearOverlays();
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName('marker');
                for (var i = 0; i < markers.length; i++) {
                    var type = markers[i].getAttribute('type');
                    var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
                    var nom = markers[i].getAttribute('nom');
                    var adresse = markers[i].getAttribute('adresse');
                    var codepostal = markers[i].getAttribute('codepostal');
                    var ville = markers[i].getAttribute('ville');
                    var marker = CreationDuMarqueur(point, type, nom, adresse, codepostal, ville);
                    map.addOverlay(marker);
                }
            });
    quelqu'un peut il m'expliquer pourquoi je n'arrive pas à récupérer ces champs, sachant que si, par exemple, j'intervertis mon type et la ville, j'obtiens la ville dans mon info-bulle
    (j'ai verifié toutes attribus de mes marqueurs sont corrects)


  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai pas manipulé du XML, mais le tien me semble étrange!
    <markers>
    <marker lat="" lng="" type="" nom="" adresse="" codepostal="" ville="" />
    </markers>
    Je vois plutot un style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <markers>
      <marker>
         <lat>lat="" </lat>
         <lng>lng=""</lng> 
         <type>type=""</type> 
         <nom>nom=""</nom> 
         <adresse>adresse=""</adresse> 
         <codepostal>codepostal=""</codepostal> 
         <ville>ville=""</ville> 
      </marker>
      <marker>
      ...
      </marker>
    </markers>
    Bon, voilà ma pensé

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 84
    Points : 101
    Points
    101
    Par défaut
    Non mais a priori le problème ne doit pas venir du XML, l'écriture est en mode simplifié, mais reste correcte.
    Je pense plutot que j'ai oublié de déclarer l'affichage de toutes mes variables
    mais je n'arrive pas à trouver ou ...
    tres certainement dans ma fonction de création du marqueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function CreationDuMarqueur(point,html) {
    			var marker = new GMarker(point);
    			GEvent.addListener(marker, 'click', function() {
    				map.setCenter(marker.getPoint(),15);
    				marker.openInfoWindowHtml(html);
     
     
     
    			});
    			GEvent.addListener(marker, 'infowindowclose', function() {
    				map.setCenter(new GLatLng(48.865458, 2.305884), 3);
    			});
    			return marker;
    		}

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La tu as 6 arguments:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var marker = CreationDuMarqueur(point, type, nom, adresse, codepostal, ville);
    et là 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function CreationDuMarqueur(point,html)
    Donc, il y aura que type qui sera affiché

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 84
    Points : 101
    Points
    101
    Par défaut
    J'ai trouvé !!!
    parfois qd on a la tête dans le code ...
    j'avais juste oublié de définir ma var html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    GDownloadUrl('data.xml', function(data) {
    			map.clearOverlays();
    			var xml = GXml.parse(data);
    			var markers = xml.documentElement.getElementsByTagName('marker');
    			for (var i = 0; i < markers.length; i++) {
    				var type = markers[i].getAttribute('type');
    				var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
    				var nom = markers[i].getAttribute('nom');
    				var adresse = markers[i].getAttribute('adresse');
    				var codepostal = markers[i].getAttribute('codepostal');
    				var ville = markers[i].getAttribute('ville');
    var html = "<b>" + nom + " " + "</b><br/>" + adresse + " "
    				var marker = CreationDuMarqueur(point, type, nom, adresse, codepostal, ville);
    				map.addOverlay(marker);
    			}
    		});
    thx jlmag pour ton soutiens

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. netbeans api layer.xml
    Par ptitom1381 dans le forum NetBeans
    Réponses: 2
    Dernier message: 21/07/2008, 18h39
  2. [DC] API DOM XML
    Par gege2061 dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 29/02/2008, 09h51
  3. Best API for XML
    Par abdessami3e dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/08/2007, 23h28
  4. [Continuum] API Client XML-RPC
    Par dev09 dans le forum Intégration Continue
    Réponses: 25
    Dernier message: 03/07/2007, 20h07
  5. Erreur avec l'API dom xml
    Par bluemartini dans le forum Langage
    Réponses: 8
    Dernier message: 23/06/2006, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo