markers Google Map sous IE

Discussion dans 'YouTube, Google Images et Google Maps' créé par Fourmie, 5 Novembre 2008.

  1. Fourmie
    Fourmie WRInaute discret
    Inscrit:
    7 Février 2007
    Messages:
    57
    J'aime reçus:
    0
    Bon ben aprés avoir épluché le forum au sujet d'IE concernant l'affichage des markers, je suis bien obligé de constater que rien ne fonctionne!

    Alors voilà mon bout de code... si celà peut aider à trouver un début de solution!
    A noter que IE trouve bien le fichier qui génère le XML... et me l'affiche..... mais prout, pas de markers alors que sous FF... pas de problème comme tous le monde! :evil:

    Page principale où l'on affiche la carte:
    Code:
    <!DOCTYPE html PUBLIC "-//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>    
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>   
     <title>Google Maps AJAX + MySQL/PHP Example</title>    
     <script src="http://maps.google.com/maps?file=api&v=2&key=<?php echo"$cle";?> "            type="text/javascript">
     </script>    
     <script type="text/javascript"> 
        //<![CDATA[    
        
        
        //alert('<?php echo"$cle";?>');
        var iconBlue = new GIcon();     
        iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';    
        iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';    
        iconBlue.iconSize = new GSize(12, 20);    
        iconBlue.shadowSize = new GSize(22, 20);    
        iconBlue.iconAnchor = new GPoint(6, 20);    
        iconBlue.infoWindowAnchor = new GPoint(5, 1);    
        
        var iconRed = new GIcon();     
        iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';    
        iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';    
        iconRed.iconSize = new GSize(12, 20);    
        iconRed.shadowSize = new GSize(22, 20);    
        iconRed.iconAnchor = new GPoint(6, 20);    
        iconRed.infoWindowAnchor = new GPoint(5, 1);    
        
        var customIcons = [];    
        customIcons["Possesseur"] = iconBlue;    
        customIcons["Mecanicien"] = iconRed;    
          customIcons["Magasin"] = iconRed;     
        
        
        function load() {      
        if (GBrowserIsCompatible()) {        
        var map = new GMap2(document.getElementById("map"));        
        map.addControl(new GSmallMapControl());        
        map.addControl(new GMapTypeControl());        
        map.setCenter(new GLatLng(<?php echo"$lat1";?>,<?php echo"$lng1";?>), 9);   
        
        
        
        GDownloadUrl("modules/Carte2/generexml.php", 
        function(data) {          
        var xml = GXml.parse(data);   
        alert(data);       
        var markers = xml.documentElement.getElementsByTagName("marker");          
        for (var i = 0; i < markers.length; i++) {            
        var name = markers[i].getAttribute("name");            
        var address = markers[i].getAttribute("address");            
        var type = markers[i].getAttribute("type");            
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),                                    
        parseFloat(markers[i].getAttribute("lng")));            
        var marker = createMarker(point, name, address, type);           
         map.addOverlay(marker);          }        });      }    }    
         
         function createMarker(point, name, address, type) {      
         var marker = new GMarker(point, customIcons[type]);      
         var html = "<b>" + name + "</b> <br/>"+type+"<br>"+address;      
         
         GEvent.addListener(marker, 'click', function() {        
         marker.openInfoWindowHtml(html);      });      
         return marker;    }    
         //]]> 
          </script>  </head>  <body onload="load()" onunload="GUnload()">    <div id="map" style="width: 600px; height: 600px"></div>  </body></html>
    
    
    et le fichier qui génère le xml

    Code:
    
    
    
    function parseToXML($htmlStr) { 
    $xmlStr=str_replace('<','&lt;',$htmlStr); 
    $xmlStr=str_replace('>','&gt;',$xmlStr); 
    $xmlStr=str_replace('"','&quot;',$xmlStr); 
    $xmlStr=str_replace("'",''',$xmlStr); 
    $xmlStr=str_replace("&",'&amp;',$xmlStr); 
    return $xmlStr; } 
    
    
    
    header("Content-Type:text/xml;charset=UTF-8");
    echo '<markers>';
    
    while ($row = @mysql_fetch_assoc($result1)){
    if($row[lat]!=0.000000){
    echo '<marker ';
    echo 'name="' . parseToXML($row['username']) . '" ';  
    echo 'address="' . parseToXML($row['address']) . '" ';  
    echo 'lat="' . $row['lat'] . '" ';  
    echo 'lng="' . $row['lng'] . '" ';  
    echo 'type="' . $row['type'] . '" ';
    
    echo '/>';
    
    }}
    
    
    echo '</markers>';
    Voilà... moi j'y perd mon latin.... je me suis dit que mon problème d'accents dans le fichier généré xml pouvait être la source du problème pour IE mais niet, même en faisant appel à un fichier statique propre, rien n'y fait!
     
  2. Fourmie
    Fourmie WRInaute discret
    Inscrit:
    7 Février 2007
    Messages:
    57
    J'aime reçus:
    0
    Au passage, IE me signale que documentelement a la valeur Null ou n'est pas un objet......

    8O
     
  3. Fourmie
    Fourmie WRInaute discret
    Inscrit:
    7 Février 2007
    Messages:
    57
    J'aime reçus:
    0
    Ca y est..... j'ai trouvé! Alors avis aux amateurs!

    J'ai remplacé dans le fichier qui génère le XML
    Code:
    header("Content-Type:text/xml;charset=UTF-8");
    par

    Code:
    header("Content-type: text/plain; charset=iso-8859-1\n");
    Du coup, le fichier généré est propre.... plus de problème d'accents etc.... et IE arrive de comprendre..... :D