1

IEとその他のブラウザの世界でGoogleマップの表示が異なるという奇妙な問題があります。IE8とIE8互換表示でテストしていますが、どちらも同じように表示されますが、Safari、FF、Chromeはすべて正常に動作し、期待どおりに動作します。

私が取り組んでいるページは次のとおりです。前面のhttp://afid.staging.dante-studios.com/は、アジア用とアフリカ用の2つのプレースホルダーです。どちらも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 に答える