谷歌地图v3 API-什么时候可以安全启动

Google Maps v3 API - When is it safe to start?

本文关键字:安全 启动 什么时候 v3 API- 谷歌地图      更新时间:2023-09-26

大多数在线加载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

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

如果在包含该元素的div具有大小之前初始化google.maps.Map,API将获得该元素的零大小,并加载中心位于左上角的地图。人们遇到这个问题的例子已经很多了。

这可以通过在加载事件触发后触发映射对象上的google.maps.Map resize事件来解决。