我的代码:
if(!bounds.isEmpty()) {
map.fitBounds(bounds);
if (map.getZoom() > 11) {
map.setZoom(11);
}
}
我发现在调用 .fitBounds
之前可能会调用 map.setZoom(11);
。导致结果与我的期望不符。
有没有一种方法可以在 .fitBounds
完成后管理回调函数?
我的代码:
if(!bounds.isEmpty()) {
map.fitBounds(bounds);
if (map.getZoom() > 11) {
map.setZoom(11);
}
}
我发现在调用 .fitBounds
之前可能会调用 map.setZoom(11);
。导致结果与我的期望不符。
有没有一种方法可以在 .fitBounds
完成后管理回调函数?
试试这个:
if(!bounds.isEmpty()) {
map.fitBounds(bounds);
google.maps.event.addListenerOnce(map, 'idle', function() {
if (map.getZoom() > 11) {
map.setZoom(11);
}
});
}
addListenerOnce()
和'idle'正是我需要的解决方案。另外需要注意的是,我们还可以使用常规的addListener()
,然后在回调操作完成后使用removeListener()
将其删除。 - Panini Luncher
fitBounds
会自动调整视口,包括缩放级别以适应传递给该方法的边界对象。没有可用的回调。您可以使用bounds_changed
事件并为其包含事件侦听器,但每当用户平移或缩放时,事件都会触发。最好使用fitBounds。 - andresf