Javascript 刷新页面后用灰色框代替谷歌地图

Javascript 刷新页面后用灰色框代替谷歌地图,javascript,jquery,ajax,google-maps,google-maps-api-3,Javascript,Jquery,Ajax,Google Maps,Google Maps Api 3,我有一张谷歌地图,上面有标记。每个标记都有一个与之关联的信息框。填充信息框所需的信息是通过ajax调用获取的。问题是,在选择了一个进行ajax调用的标记之后,如果成功完成,那么无论何时刷新/重新加载页面,Google地图都只是一个灰色框 var map, markers = []; var initMap = function (latitude, longitude) { var coords = new google.maps.LatLng(parseFloat(latitude),

我有一张谷歌地图,上面有标记。每个标记都有一个与之关联的信息框。填充信息框所需的信息是通过ajax调用获取的。问题是,在选择了一个进行ajax调用的标记之后,如果成功完成,那么无论何时刷新/重新加载页面,Google地图都只是一个灰色框

var map, markers = [];
var initMap = function (latitude, longitude) {
    var coords = new google.maps.LatLng(parseFloat(latitude), parseFloat(longitude));
    var mapOptions = {
        zoom: 8,
        minZoom:2,
        center: coords,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scaleControl: true
     }
     map = new google.maps.Map(document.getElementById('search-map'), mapOptions)
};
var infowindow = new google.maps.InfoWindow({
    maxWidth: 350,
    shadowStyle: 1,
    padding: 0,
    backgroundColor: 'rgb(57,57,57)',
    borderRadius: 4,
    arrowSize: 10,
    borderWidth: 1,
    borderColor: '#2c2c2c',
    arrowPosition: 30,
    arrowStyle: 2
});
var contentString = "stuff"
for(var i = 0; i < markers.length; i++) {
    var marker = new google.maps.Marker({
        position: markers[i][0],
        map: map,
        icon: markers[i][1]
    })
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            $.post($(ajaxURL, userIdObj, function(response) {
                infowindow.close();
                infowindow.setContent(contentString);
                infowindow.open(map, marker);
            })
        }
    })(marker, i));
}
var映射,标记=[];
var initMap=函数(纬度、经度){
var coords=new google.maps.LatLng(parseFloat(纬度),parseFloat(经度));
变量映射选项={
缩放:8,
minZoom:2,
中心:coords,
mapTypeId:google.maps.mapTypeId.ROADMAP,
scaleControl:对
}
map=new google.maps.map(document.getElementById('search-map'),mapOptions)
};
var infowindow=new google.maps.infowindow({
最大宽度:350,
阴影风格:1,
填充:0,
背景颜色:“rgb(57,57,57)”,
边界半径:4,
箭头尺寸:10,
边框宽度:1,
边框颜色:“#2c2c”,
箭头位置:30,
箭头样式:2
});
var contentString=“stuff”
对于(var i=0;i
我也遇到过这种情况,但在绘制地图后,您只需使用以下命令调整其大小

$('google-map').resize();
使其可见。

因此,只需快速更新即可。 在完成这项任务时,我实际上经历了两种类型的“灰盒” 一个我可以在底部看到谷歌徽标,另一个我看不到。如果你可以在底部看到谷歌徽标,如上所述,你必须调整大小。大致如下:
google.maps.event.trigger(map,'resize');

如果在灰色框中看不到任何内容,则很可能是使用函数初始化地图时出现问题,尤其是使用
中心:new google.maps.LatLng(39.739318,-89.266507)

您正在将
纬度
经度
传递给您的
initMap
方法-有些信息告诉我,您的AJAX调用一定是搞乱了,但是您正在传递这些参数。然后,您创建的地图没有中心,而最终得到的只是一个灰色框。谢谢@Adam,我会调查的!请阅读。