我希望我的地图最初从由边界确定的缩放中缩小 -1。如果我执行以下操作,它只会放大/缩小,但我想将缩放级别设置为“大一点”。
map.fitBounds(bounds);
由于众所周知的原因,之后我不能使用 map.setZoom 。
有一些简单的方法可以做到这一点吗?
我希望我的地图最初从由边界确定的缩放中缩小 -1。如果我执行以下操作,它只会放大/缩小,但我想将缩放级别设置为“大一点”。
map.fitBounds(bounds);
由于众所周知的原因,之后我不能使用 map.setZoom 。
有一些简单的方法可以做到这一点吗?
最好的办法是为地图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
。
但是,这种方法的问题是,在地图缩小之前,您仍然会看到为一瞬间设置的初始边界。
您可以在以下位置使用事件侦听器zoom_changed
:
google.maps.event.addListenerOnce(map, 'zoom_changed', function() {
var zoomLevel = map.getZoom();
map.setZoom(zoomLevel-1);
});