0

我希望我的地图最初从由边界确定的缩放中缩小 -1。如果我执行以下操作,它只会放大/缩小,但我想将缩放级别设置为“大一点”。

map.fitBounds(bounds);

由于众所周知的原因,之后我不能使用 map.setZoom 。

有一些简单的方法可以做到这一点吗?

4

2 回答 2

1

最好的办法是为地图idle事件创建一个事件监听器。一旦fitbounds完成它的事情,就会触发空闲事件。

如果您需要在每次适合边界时都这样做,那么创建一个自定义 fitbounds 方法

var fitBounds = function(map, bounds) {
   google.maps.event.addListenerOnce(map, 'idle', function() {
       this.setZoom(this.getZoom() - 1);
   });
   map.fitBounds(bounds);
}

请注意,我们使用的是addListenerOnce方法而不是普通的addListener

但是,这种方法的问题是,在地图缩小之前,您仍然会看到为一瞬间设置的初始边界。

于 2013-01-10T14:18:04.030 回答
0

您可以在以下位置使用事件侦听器zoom_changed

google.maps.event.addListenerOnce(map, 'zoom_changed', function() {
    var zoomLevel = map.getZoom();

    map.setZoom(zoomLevel-1);
});
于 2013-01-10T13:53:07.467 回答