Мне очень нравится решение mrt, и оно отлично работает, если у вас всегда есть только один пункт для работы.Однако я обнаружил, что если ограничивающая рамка не основана на одной точке, но точки расположены очень близко друг к другу, это все равно может привести к слишком большому увеличению карты.
Вот способ сначала проверить,точки находятся на определенном расстоянии друг от друга, и если они меньше минимального расстояния, расширьте границы на это минимальное расстояние:
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);
}
Надеюсь, это кому-нибудь поможет!