Попробуйте использовать новый 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 property in object
Включает методы и т. Д.