谷歌地图没有显示

kai*_*ser 6 javascript google-maps

我有一张不会显示的Google地图.问题在FF和Chrome中似乎是相同的,但在IE中更为"糟糕"(总是最新版本).

在FF和Chrome中,我遇到了position: relative;css元素样式的问题.一旦切换到(使用开发工具),position: absolute(or: fixed);一切都在FF中显示正常.在Chrome中,地图仅显示上限30%(从顶部开始).

在IE中,地图甚至没有加载.

这是来自的脚本<head>.内容仅用于测试,并不代表任何内容. 注意:我只使用它来加载地图.这将在稍后交换.

<!-- Script inside <head> tag -->
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?
        file=api&amp;
        v=2&amp;
        key=<?php echo self::GOOGLE_API_KEY; ?>&amp;
        sensor=false">
    </script>
    <script type="text/javascript">
    function initialize() 
    {
        var startpos = new google.maps.LatLng( 50.978056,11.029167 );
        var ops = { 
             zoom:      6
            ,center:    startpos
            ,mapTypeId: 
                 google.maps.MapTypeId.ROADMAP
                ,tileSize: new google.maps.Size( 256, 256 )
        }
        var map = new google.maps.Map( document.getElementById("map_canvas"), ops );
        var pos1 = new google.maps.LatLng( 50.7510776,12.4820724 );
        var contentString1 = '<div align="left" dir="ltr" class="infowin"><h3>test</h3>testen</div>';
        var infowindow1 = new google.maps.InfoWindow( {
             content:   contentString1
            ,maxWidth:  5
        } );
        var marker1 = new google.maps.Marker( { 
             position:  pos1
            ,map:       map
            ,title: 'test' 
        } );
        google.maps.event.addListener(
             marker1
            ,'click'
            ,function() { 
                infowindow1.open( map, marker1 );
            }
        );
    }
    </script>
Run Code Online (Sandbox Code Playgroud)

这是页面的整个标记.

<!-- html markup - There *really* isn't anything else -->
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%;"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

我在google上花了很多时间而没有找到任何东西.有任何想法吗?谢谢!

Zub*_*ir1 20

html, body应该是height:100%;.

但请记住,如果您的地图持有人元素是另一个元素的子元素,那么该元素也应该具有 height:100%;

否则,只设置html和body对你没有任何好处.

一个例子来解释我的观点:

<html>
<head>
  <style>
      html, body { height:100%; }
  </style>
</head>
<body>

<div id="wrapper">
     <div id="google-map-holder" style="width:100%; height:100%;"></div>
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

所以,如果你正在做类似上面的事情.这height:100%;将不起作用.

为了使这项工作,您必须对所有父母做同样的事情#google-map-holder,在这种情况下我们将添加height:100%;#wrapper元素.

如果#google-map-holder元素直接在#wrapper元素之外,那么body直接然后正在做的孩子html, body就足够了.