Карты Google по-разному отображают маркеры и центрируют карту в Internet Explorer

StackOverflow https://stackoverflow.com/questions/1918323

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

Вина за то, что 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); 
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top