API V3 - 根据所需的缩放设置缩放-1以适合标记

时间:2013-01-10 12:55:36

标签: google-maps google-maps-api-3

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

map.fitBounds(bounds);

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

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

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

您可以在zoom_changed上使用事件监听器:

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

    map.setZoom(zoomLevel-1);
});