Маркер Google Maps пополам интернет-обозревателя - PullRequest
6 голосов
/ 17 апреля 2011

У меня странная проблема с иконками маркеров карт Google в Internet Explorer.Все мои маркеры отображаются вдвое и смещены более чем на 50%.

http://imgur.com/bPmLC

, который использует демонстрационный код от Google.Так что это должно быть что-то странное, что я делаю в другом месте со стилями или jquery, но я не знаю что.У кого-нибудь была эта проблема раньше?

Ответы [ 7 ]

6 голосов
/ 03 мая 2011

У меня была похожая проблема. Проблема в том, что каждый значок маркера унаследовал поле> 0, я решил проблему, установив поле на ноль для всех img в карте div.

<style type="text/css">
   #map_canvas img {
       margin: 0px
   }
</style>
4 голосов
/ 21 февраля 2014

Ваша проблема интересна тем, что она происходила и с маркерами по умолчанию.Я описал аналогичную проблему для пользовательских маркеров в сообщении в блоге в феврале 2012 года: http://www.gutensite.com/Google-Maps-Custom-Markers-Cut-Off-By-Canvas-Tiles

У нас были проблемы с Google Maps API версии 3.8 (новее, чем несколько других, которые предложили решения здесь).Пользовательские маркеры будут обрезаны, а маркеры по умолчанию - нет.Мы обнаружили, что это было вызвано новыми плитками Canvas, которые используются для оптимизации отображения Google Карт.Если вы осмотрите элементы, вы увидите, что маркеры на самом деле являются слоями листов.

Если мы отключили «оптимизированный» (см. Код ниже), маркеры отображаются правильно!Так что, похоже, это связано с кодом оптимизации.

var point = new google.maps.Marker({
'position': position,
'map': this.options.map.construct,  
'icon': marker_data.custom_icon,    
'title': marker_data.title, 
'optimized': false
});

Я не подтвердил, была ли эта проблема исправлена ​​Google с тех пор или нет, или есть лучшее решение.

Другие предположили, что если вы проанализируете ширину и высоту маркеров, это решит их проблему.

См. Связанную статью с картинками.Stackoverflow не позволит мне включить их, потому что у меня недостаточно очков репутации: - \

2 голосов
/ 03 мая 2011

Я исправил эту проблему с помощью стабильной версии API, как ...

http://maps.google.com/maps/api/js?v=3.2&sensor=false

вместо ночной сборки разработчика ... (http://maps.google.com/maps/api/js?sensor=false)

1 голос
/ 26 сентября 2012

У меня была такая же проблема;Я должен был установить поля и отступы 0:

#map img {
    margin:0px;
    padding:0px;
}
1 голос
/ 05 мая 2011

У меня была похожая проблема, (я использовал пользовательские изображения маркеров, и они были смещены на 1 пиксель влево и вниз в IE7-8)

Этот код решил проблему:

<!--[if IE]>
  <style>
    div#map img{
      margin-top: -1px;
      margin-left: -1px;
    }
  </style>
<![endif]-->

Где map - идентификатор контейнера API API карты Google.

0 голосов
/ 06 февраля 2013

parseInt вокруг значений, сделанных для меня

new google.maps.Size(parseInt(width), parseInt(height))
new google.maps.Point(parseInt(width)/2, parseInt(height))
0 голосов
/ 08 марта 2012

Я пробовал решение #map_canvas img { margin: 0px; } выше, но оно работало только наполовину. Я изменил его на #map_canvas img { margin: -5px; } и применил к таблице стилей IE7 и IE8.

...