加载Google Maps API的大多数在线示例等待窗口load
事件实际创建地图,即:
<script src="http://maps.googleapis.com/maps/api/js?key=myKeyHere&sensor=false">
</script>
<script>
function initialize()
{
var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap")
,mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
取自http://www.w3schools.com/googleapi/google_maps_basic.asp
我的问题是,是否有必要等待窗口加载事件?特别是,DOMContentReady处理程序是否足够?我的经验表明它通常是,但我偶尔会在我的初始化函数中从我的用户那里得到奇怪的错误,例如google.maps.MapTypeId is undefined
。
答案 0 :(得分:0)
等待加载事件的主要原因是在初始化地图对象之前,包含地图的div需要有一个大小。
如果在包含它的div具有大小之前初始化google.maps.Map,则API将为该元素获得零大小,并将加载左上角中心的地图。有很多(和很多)人遇到这个问题。
可以通过在加载事件触发后触发地图对象上的google.maps.Map resize事件来解决这个问题。