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

JavaScript Discussion :

Api Google Map erreur incomprehensible (pour moi!)


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut Api Google Map erreur incomprehensible (pour moi!)
    J'ai un probleme avec l'api et google map que je ne comprends pas

    lorsque j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $markers_id = array(1);
    j'ai comme retour les valeurs suivants
    Code =xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - <markers>
    <marker nom="Pan Africa Market" lat="47.608940" long="-122.340141" url="restaurant" /> 
    </markers>
    et les marqueur s'affiche bien sur ma carte

    mais lorsque j'ecris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $markers_id = $_POST['box']; //(recuperer un array d'une autre page)
    j'ai toujours les valeurs suivants
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - <markers>
    <marker nom="Pan Africa Market" lat="47.608940" long="-122.340141" url="restaurant" /> 
    </markers>

    mais rien ne s'affiche sur ma carte et j'ai le message d'ereur suivant de IE Message: 'documentElement' is null or not an object

    Avez vous une idee d'ou cela peut venir?

    voici mon code



    fichier ajax_mysql.php

    /
    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
    17
    18
    19
    20
    21
    / Récupération des variables
    $box = $_POST['box'];
    mysql_connect($host,$user,$password);
      mysql_select_db($bdd) or die("erreur de connexion à la base de données");
     
     
      $sql = "select * from markers where id  IN (".implode(',', $box).")";
      $res = mysql_query($sql) or die(mysql_error());
      $dom = new DomDocument('1.0', 'iso-8859-1');
      $node = $dom->createElement("markers");
      $parnode = $dom->appendChild($node);
      while ($result = mysql_fetch_array($res)){
        $node = $dom->createElement("marker");
        $newnode = $parnode->appendChild($node);
        $newnode->setAttribute("nom", $result['name']);
        $newnode->setAttribute("lat", $result['lat']);
        $newnode->setAttribute("long", $result['lng']);
        $newnode->setAttribute("url", $result['type']);
      }
      $xmlfile = $dom->saveXML();
      echo $xmlfile;


    et pour afficher la carte : api.php

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>
         [Google Maps] 10. Utiliser Ajax, MySQL et PHP pour afficher des marqueurs
       </title>
       <style type="text/css">
         html { overflow:hidden; height:100%; } 
         body { height:100%; margin:0; }
         #map { width:100%; height:100%; }
       </style>
       <link rel="icon" type="image/png" href="./favicon.png"/>
       <script src="http://maps.google.com/maps?file=api&v=2&key=xxxxx" type="text/javascript"></script>
       <script type="text/javascript">
     
         function createMarker(point,nom,url) {
           var marker = new GMarker(point);
           var html = "<b><a href=\""+url+"\">"+nom+"</a></b>";
           GEvent.addListener(marker, 'click', function() {
             marker.openInfoWindowHtml(html);
           });
           return marker;
         }
     
         function initialize() {
           if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById('map'));
            map.setCenter(new GLatLng(47.608940, -122.340141),15);
            map.addControl(new GMapTypeControl());
            map.removeMapType(G_HYBRID_MAP);
            map.addMapType(G_PHYSICAL_MAP);
            map.setMapType(G_PHYSICAL_MAP);
            map.addControl(new GOverviewMapControl());
            map.addControl(new GScaleControl());
            map.addControl(new GLargeMapControl());
            map.enableScrollWheelZoom();
     
     
           var urlstr = "./ajax_mysql.php";
           GDownloadUrl(urlstr, function(data) {
             var xml = GXml.parse(data);
             var markers = xml.documentElement.getElementsByTagName("marker");
             for (var i = 0; i < markers.length; i++) {
               var nom = markers[i].getAttribute("nom");
               var url = markers[i].getAttribute("url");
               var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("long")));
               var marker = createMarker(point,nom,url);
               map.addOverlay(marker);
             }
           });
     
          }
          else{
           alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
          }
        }
      </script>
      </head>
      <body onload="initialize()" onunload="GUnload()">
        <div id="map"></div>
       </body>
    </html>

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Hm, IE pour faire du debug JS c'est le mal :b , essayes sous FF avec l'addon FireBug, tu y verra deja plus clair.

    Mais à vue de nez, l'erreur vient de cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var markers = xml.documentElement.getElementsByTagName("marker");
    Donc à priori
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var xml = GXml.parse(data);
    retourne un objet null, apres pourquoi , jte laisse regarder de plus près :b

    PS: ce n'est donc au final, pas une erreur venant de GGMaps, mais bien de ton code JS :p
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Merci, j'ai compris d'ou venais le probleme qui semble etre insolvable.

Discussions similaires

  1. API Google Maps pour application Java locale
    Par sox147 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 04/08/2012, 14h00
  2. Equivalant MarkerManager pour l'API Google Maps Android ?
    Par glycerine dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 10/05/2011, 10h21
  3. api google earth et google map à l'aide pour intégrer de nouvelles fonctions
    Par didier6526 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2009, 11h51
  4. Réponses: 4
    Dernier message: 07/04/2006, 16h30

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