动态Google地图缩放getBounds()未定义

我有这段javascript代码
    var myOptions = {
        zoom:9,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: false
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var latlongcollection = new Array();
            // some more code to push latlng objects into latlongcollection
    map.setCenter(latlongcollection[0]);

    for(latlong in latlongcollection){
        map.getBounds().extend(latlong);
     }

     map.fitBounds(map.getBounds());
但每次它给我的错误map.getBounds()都是未定义的。中心设置和均匀。在调用map.getBounds()之前设置了zoom。请帮忙     
已邀请:
尝试使用新的google.maps.LatLngBounds对象而不是map.getBounds():
var bounds = new google.maps.LatLngBounds()
// note: this for/in loop is erronous
//for(latlong in latlongcollection){
//    bounds.extend(latlong);
//}
for ( var i = 0,len=latlongcollection.length;i<len;i++) {
    bounds.extend( latlongcollection[ i ] );
}
map.fitBounds( bounds );
此外,您使用的for循环与数组一起使用也很糟糕。数组中的for / in不仅会循环索引值,还会循环属性和方法。因此,您将使用.length和.push扩展您的界限等等。仅这一点也可能导致了这个错误。始终读取for / in循环:
for property in object 
其中包括方法等。     

要回复问题请先登录注册