Карты Google по-разному отображают маркеры и центрируют карту в Internet Explorer
-
20-09-2019 - |
Вопрос
У меня странная проблема с 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);
});