me gusta mucho la solución de MRT y funciona perfectamente si has siempre sólo tiene un punto a trabajar con. Sin embargo, encontré que si el cuadro delimitador no se basaba en un punto, sino que los puntos estaban muy juntos, esto aún podría hacer que el mapa se acercara demasiado.
Aquí está una manera comprobar primero si los puntos están a una distancia definida entre sí, a continuación, si son más pequeñas que la distancia mínima, se extienden los límites de esa distancia mínima:
var bounds = new google.maps.LatLngBounds();
// here you extend your bound as you like
// ...
var minDistance = 0.002;
var sumA = bounds.getNorthEast().lng() - bounds.getSouthWest().lng();
var sumB = bounds.getNorthEast().lat() - bounds.getSouthWest().lat();
if((sumA < minDistance && sumA > -minDistance)
&& (sumB < minDistance && sumB > -minDistance)){
var extendPoint1 = new google.maps.LatLng(bounds.getNorthEast().lat() + minDistance, bounds.getNorthEast().lng() + minDistance);
var extendPoint2 = new google.maps.LatLng(bounds.getNorthEast().lat() - minDistance, bounds.getNorthEast().lng() - minDistance);
bounds.extend(extendPoint1);
bounds.extend(extendPoint2);
}
Espero que esto ayude ¡alguien!
http: // stackoverflow.com/questions/4523023/using-setzoom-after-using-fitbounds-with-google-maps-api-v3 es una solución mucho mejor. Particular @Nequins respuesta – Kennet