谷歌地图部分来自灰色区域,而不是来自谷歌服务器的图像

Vis*_*ath 59 javascript google-maps google-maps-api-2

有时谷歌地图部分与其他区域变灰.有一个问题,如果我们启动Firebug,图像确实会出现在灰色区域.不知道为什么会这样.任何人都经历过这个并找到解决方案,请分享.

Arg*_*ros 80

如果你正在使用v3试试

google.maps.event.trigger(map, "resize");
Run Code Online (Sandbox Code Playgroud)

另外看看这里


Hit*_*_99 36

如果要调整地图的大小,可能会发生此错误DIV.调整大小后,尝试调用gmap.checkResize()函数.

  • 在V3中,checkResize已折旧.可以在http://blog.codebusters.pl/en/entry/google-maps-in-hidden-div找到V3的解决方案. (14认同)

小智 7

嗨,如果你使用地图容器在div中切换,你可以在函数中调用resizeMap

associated with the trigger:
        $(".trigger").click(function(){
        $(".panel").toggle("fast");
        $(this).toggleClass("active");
         resizeMap();
        return false;
Run Code Online (Sandbox Code Playgroud)

然后resizeMap(); 像这样

function resizeMap()
{
google.maps.event.trigger(map,'resize');
map.setZoom( map.getZoom() );
}
Run Code Online (Sandbox Code Playgroud)

不要忘记将地图变量设置为全局;)欢呼


Mil*_*lan 7

我为部分加载的谷歌地图找到了一个简单的解决方案.通常它是由于onLoad()在页面的其余部分(包括地图元素)未完全加载时被调用而引起的.这会导致部分地图加载.解决此问题的一个简单方法是更改onLoad正文标记操作.

旧方式:

onload="initialize()"
Run Code Online (Sandbox Code Playgroud)

新方式:

onLoad="setTimeout('initialize()', 2000);"
Run Code Online (Sandbox Code Playgroud)

这等待Google Javascript访问正确大小属性前2秒.还要确保在尝试之前清除浏览器缓存; 有时它会卡在那里:)

这是我最JavaScript部分的情况下,你想知道(完全是在谷歌文档中描述,而是因为我打电话了Latitude,并Longitude从PHP变量,因此PHP代码片段.

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
    var myOptions = {
        center: new google.maps.LatLng(<?php echo $my_latitude; ?> , <?php echo $my_longitude; ?>),
        zoom: 14,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

    var point = new google.maps.LatLng(<?php echo $my_latitude; ?> , <?php echo $my_longitude; ?>);
    var marker = new google.maps.Marker({ position:point, map:map })    
}
</script>
Run Code Online (Sandbox Code Playgroud)