Google Maps v3 API - 什么时候开始安全?

时间:2014-09-11 13:41:19

标签: javascript google-maps

加载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

1 个答案:

答案 0 :(得分:0)

等待加载事件的主要原因是在初始化地图对象之前,包含地图的div需要有一个大小。

如果在包含它的div具有大小之前初始化google.maps.Map,则API将为该元素获得零大小,并将加载左上角中心的地图。有很多(和很多)人遇到这个问题。

可以通过在加载事件触发后触发地图对象上的google.maps.Map resize事件来解决这个问题。