我已经在我的应用程序中实现了Google地图(以模态形式),但是正如您在下面的图像中看到的那样,有一个灰色区域,我当然希望摆脱它.可以移动地图以使灰色区域消失,但不应该这样做.
事情就是地图显示在一个模态框内,其中包含许多内容,这些内容是在点击显示模态的按钮时动态创建的.似乎问题可能是在加载模态之前地图内容没有完全加载,但我不确定……
HTML:
...
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Test</h3>
</div>
<div id="modal-left" class="modal-body left"></div>
<div class="modal-body right">
<div id="map"></div>
</div>
</div>
...
JS:
function initializeMap(latitude,longitude) {
var place = new google.maps.LatLng (latitude,longitude);
var myOptions = {
zoom: 10,center: place,mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map"),myOptions);
var marker = new google.maps.Marker({
position: place,map: map,title: ""
});
};
$('.modal-btn').click(function(){
var producerId = $(this).attr('id');
GetProducer(producerId,function(data) { // <--- data retrieved through ajax
initializeMap(data.latitude,data.longitude);
var titel = data.name;
var content = "<p><img class='modal-img' src='" + data.imgurl + "' /></p>" +
"<p>" + data.name + "," + data.address + "<br/>" +
data.zipcode + " " + data.town + "</p>" +
"<p><a href='" + data.url + "' >" + data.url + "</a></p>";
$('#myModalLabel').html(titel);
$('#modal-left').html(content);
});
});
图1:
图2:
解决方法
发生这种情况的常见原因是地图的大小在初始化地图后会发生变化.如果由于某种原因更改了id =“map”的div的大小,则需要触发“resize”事件
google.maps.event.trigger(map,'resize');
您可以尝试在javascript控制台中触发事件,看看它是否有帮助.
请注意,这个答案是猜测,因为问题中没有任何内容可以使用,所以如果它没有帮助,请告诉我.