1

我有一个奇怪的问题,谷歌地图在 IE 和其他浏览器世界中的显示方式不同。我在 IE8 和 IE8 兼容性视图中进行测试,两者都显示相同,但​​ Safari、FF、Chrome 都运行良好且符合预期。

我正在处理的页面是:http ://afid.staging.dante-studios.com/前面有两个占位符,一个用于亚洲,一个用于非洲。两者似乎都在 IE 中错误地居中。

标记和信息框也是从 XML 文件加载的,似乎 IE 也没有加载所有它们......

如果有人能对此有所了解,我将不胜感激,因为到目前为止我已经花了很长时间尝试调试它,但我实际上找不到任何问题......

提前致谢

更新 地图中心问题已得到妥善解决,但现在并非所有标记都显示的问题仍然存在,如果要查看亚洲部分(印度)并在 IE 和任何其他浏览器之间进行比较,并非所有标记都显示,任何线索将不胜感激。

4

1 回答 1

1

map.setCenter()您在 IE8 中遇到的问题归咎于$("#map-holder").fadeOut()方法。

尝试不fadeOut()这样,居中将正常工作:

$(".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());
        var Asia = new GLatLng(23.684774, 90.087891);
        map.setCenter(Asia, 4); 

        $.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');    
});

map.setCenter()外的fadeOut()方法也解决了IE8的居中问题:

$(".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); 
});
于 2009-12-16T23:13:56.293 回答