2012-05-23 33 views
5

我是一个JavaScript的新手,我需要你的帮助设置谷歌地图div元素是在另一个div元素。下面是如果div元素没有嵌套其工作代码:如何在另一个div内设置地图到div?

function initialize() { 

var myOptions = { 
    center: new google.maps.LatLng(-34.397, 150.644), 
    zoom: 8, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 

var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 

但是,如果我有嵌套的div,这是行不通的:

<body onload="initialize()"> 
<div id="main"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
</div> 
</body> 

我该如何解决这个问题?

回答

5

位的测试之后,我得出的结论是,你需要一个高度设为您的id="main" DIV也

style="width:100%; height:100%"

因为它是地图的容器,并没有规定的高度上什么都不会出现。这就像滚下窗帘,地图不会自动推下去。

我假设你有类似的东西已经太多,因为地图作品,未经筑巢,但我会再次提到它:

<style type="text/css"> 
    html, body {height:100%} 
</style> 
+0

谢谢。完美工作。我在完全错误的地方寻找问题。 – reederz

+0

不客气! –

1

谷歌地图需要它画布静态的高度和宽度。如果父div不具有静态大小,则不应将%用于高度和宽度。此外谷歌地图有一个错误,它无法加载隐藏的div。 (如果这样做,你需要一些技巧)