Отображение карты Google в модальном окне, созданном с помощью Twitter Bootstrap

Я пытаюсь вставить карту Google в модальное окно с помощью Twitter Bootstrap. Модальное окно отображается с присутствующей формой карты, но отображается только часть карты, остальная часть серая. При изменении размера экрана карта всегда отображается правильно, хотя и не в том месте по центру.

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

JS

function initialize() {
  var mapOptions = {
    center: new google.maps.LatLng(51.219987, 4.396237),
    zoom: 12,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("mapCanvas"),
    mapOptions);
  var marker = new google.maps.Marker({
    position: new google.maps.LatLng(51.219987, 4.396237)
  });
  marker.setMap(map);
}

HTML

<div class="modal hide fade" id="myModal">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">×</button>
    <h3></h3>
  </div>
  <div class="modal-body">
    <div id="mapCanvas" style="width: 500px; height: 400px"></div>
  </div>
  <div class="modal-footer">
    <a href="#" class="btn" data-dismiss="modal">Close</a>
  </div>
</div>

Я использую Twitter Bootstrap v2.0.4. Мне нужна помощь, потому что я не могу правильно вызвать событие изменения размера или изменить css, чтобы карта Google осталась в покое.

59
задан merv 1 August 2012 в 14:18
поделиться