2009-12-17 3 views
1

j'ai une carte Google sur notre site qui a une liste de marqueurs qui sont amenés à utiliser le code suivant:Certains Google Map Markers ne se présente pas dans Internet Explorer, mais apparaissent dans tous les autres navigateurs

$(".map-overlay-right").click(function() { 
    var map = new GMap2(document.getElementById('map-holder')); 
    $("#map-holder").fadeOut('slow', function(){          
     var gmarkers = []; 
     map.addControl(new GSmallMapControl()); 
     map.addControl(new GMapTypeControl()); 

     $.get("http://afid.staging.dante-studios.com/xml-feed-google-maps",{},function(xml) { 
      $('marker',xml).each(function(i) { 
       html = $(this).text(); 
       lat = $(this).attr("lat"); 
       lng = $(this).attr("lng"); 
       label = $(this).attr("label"); 
       var point = new GLatLng(lat,lng); 
       var marker = createMarker(point,label,html); 
       map.addOverlay(marker); 
      }); 
     }); 

    }); 
    $("#map-holder").fadeIn('slow');  
    var Asia = new GLatLng(23.684774, 90.087891); 
    map.setCenter(Asia, 4); 
}); 

le fichier XML qui les apporte ressemble à ceci:

<?xml version="1.0"?> 
<markers> 
    <marker id="1" lat="11.547812" lng="104.915957" label="Foo"> 
     <infowindow> 
      <![CDATA[HTML GOES HERE]]> 
     </infowindow> 
    </marker> 
    <marker id="2" lat="11.547812" lng="104.915957" label="Bar"> 
     <infowindow> 
      <![CDATA[HTML GOES HERE]]> 
     </infowindow> 
    </marker> 
    <marker id="3" lat="11.547812" lng="104.915957" label="Baz"> 
     <infowindow> 
      <![CDATA[HTML GOES HERE]]> 
     </infowindow> 
    </marker> 
</markers> 

Pour une raison quelconque ne sont pas tous les marqueurs apparaissent dans Internet Explorer. IE lance cette erreur:

détails de l'erreur de page Web

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3) 
Timestamp: Thu, 17 Dec 2009 12:39:16 UTC 


Message: Invalid argument. 
Line: 143 
Char: 18 
Code: 0 
URI: http://maps.gstatic.com/intl/en_ALL/mapfiles/193c/maps2.api/main.js 

Mais le reste des navigateurs semblent être ok et bien se comporter. La partie du code qui jette l'erreur est ce bit:

map.addOverlay(marker); 

Le site peut être vu ici: http://afid.staging.dante-studios.com/ et en cliquant sur l'Asie va mieux montrer l'erreur comme les marqueurs au bas de l'Inde apparaissent sur tous les navigateurs mais pas dans IE.

J'ai passé un moment à essayer de résoudre ce problème, mais je n'arrive à rien. Si quelqu'un peut faire la lumière sur ce point, je l'apprécierais grandement.

Répondre

2

Marker 42 dans votre marqueur XML a une latitude malformé:

<marker id="42" lat="-12.968270," lng="28.633699" label="Ndola, Zambia"> 

Notez la virgule finale dans l'attribut lat.

+0

Des yeux incroyables! merci :) –

+0

En fait, quand je l'ai ouvert dans IE et il a barbouillé, il m'a permis de le déboguer avec Visual Studio. Je me suis dit que c'était un faux marqueur, donc après un peu de navigation dans la pile j'ai trouvé la valeur de la latitude offensante, alors je l'ai juste cherché dans le XML. –

Questions connexes