Использование setZoom () после использования fitBounds () с Google Maps API V3

Я использую fitBounds (), чтобы установить уровень масштабирования на моей карте, также включаю все маркеры, отображаемые в данный момент. Однако, когда у меня виден только один маркер, уровень масштабирования составляет 100% (... какой уровень масштабирования 20, я думаю ...). Однако я не хочу, чтобы он был настолько увеличен, поэтому пользователь может отрегулировать положение маркера, не уменьшая масштаб.

У меня есть следующий код:

var marker = this.map.createMarker(view.latlng, this.markerNumber);
this.map.bounds.extend(view.latlng);
this.map.map.setCenter(this.map.bounds.getCenter());
this.map.map.fitBounds(this.map.bounds);
if (this.markerNumber === 1) {
  this.map.map.setZoom(16);
}
this.markerNumber++;

где this.map.bounds ранее был определен как:

this.map.bounds = new google.maps.LatLngBounds();

Однако проблема, с которой я столкнулся, заключается в том, что строка this.map.map.setZoom (16) ; не работает, если я использую this.map.map.fitBounds (this.map.bounds); , однако я знаю, что эта строка кода верна, потому что когда я закомментировал fitBound (), функция setZoom () волшебным образом начинает работать.

Есть идеи, как решить эту проблему? Я подумываю установить уровень maxZoom в качестве альтернативы, если я не могу заставить это работать.

72
задан Andrew De Andrade 23 December 2010 в 23:58
поделиться