Карты Google Отображение маркеров и центра карты по-разному в Internet Explorer - PullRequest
1 голос
/ 17 декабря 2009

У меня странная проблема с Google Maps, которые по-разному отображаются в IE и в остальном мире браузеров. Я тестирую в IE8 и в представлении совместимости IE8, оба показывают то же самое, но Safari, FF, Chrome все работают нормально и, как и ожидалось.

Страница, над которой я работаю, такова: http://afid.staging.dante -studios.com / на передней панели - два заполнителя, один для Азии и один для Африки. Похоже, что в IE оба неправильно центрированы.

Также маркеры и информационные поля загружаются из XML-файла, похоже, что IE тоже не загружает их все ....

Буду признателен, если кто-нибудь сможет пролить свет на это, поскольку я потратил довольно много времени, пытаясь отладить его, но на самом деле я не могу найти ничего плохого ...

Заранее спасибо

UPDATE Проблема с центром карты была любезно решена, но теперь проблема, связанная с тем, что не все отображаемые маркеры все еще остаются, если посмотреть на раздел Азия (Индия) и сравнить IE и любой другой браузер, не все маркеры показывают, любые подсказки будут оценены.

1 Ответ

1 голос
/ 17 декабря 2009

Вину за проблему 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); 
});
...