Я рисую серию маркеров на карте (используя v3 карт api).
В v2 у меня был следующий код:
bounds = new GLatLngBounds();
... loop thru and put markers on map ...
bounds.extend(point);
... end looping
map.setCenter(bounds.getCenter());
var level = map.getBoundsZoomLevel(bounds);
if ( level == 1 )
level = 5;
map.setZoom(level > 6 ? 6 : level);
И это прекрасно работает, чтобы гарантировать, что на карте всегда будет отображаться соответствующий уровень детализации.
Я пытаюсь дублировать эту функцию в v3, но setZoom и fitBounds, похоже, не сотрудничают:
... loop thru and put markers on the map
var ll = new google.maps.LatLng(p.lat,p.lng);
bounds.extend(ll);
... end loop
var zoom = map.getZoom();
map.setZoom(zoom > 6 ? 6 : zoom);
map.fitBounds(bounds);
Я пробовал другую перестановку (например, перемещение fitBounds до setZoom), но я ничего не делаю с setZoom, похоже, влияет на карту. Я что-то упускаю? Есть ли способ сделать это?