gpt4 book ai didi

javascript - 如何控制fitBounds是否改变边界?

转载 作者:行者123 更新时间:2023-11-28 02:45:38 26 4
gpt4 key购买 nike

我正在使用谷歌地图 API v3。我需要捕获 map 上的所有 idle 事件,但我不想在通过代码更改边界或缩放时看到它们。当我使用 fitBounds 方法时存在问题。我使用一个标志来决定事件是因我还是用户而创建。当我使用 fitBounds 时,如果边界发生更改,则会触发它,但有时边界不会更改并且事件不会触发,因此该标志工作错误。它导致脚本忽略用户的下一个事件。这是我的代码:

var flag = false;

google.maps.event.addListener(map, 'idle', function() {
if(flag) {
// ignore this event
} else {
// do some work
}
flag = false;
});

function fitBounds() {
var bounds = new google.maps.LatLngBounds();
for(var i=0; i<markers.length; i++) {
var location = markers[i].getPosition();
bounds.extend(location);
}

// I need something like whether bounds will change or not after fitBounds?
flag = true;
map.fitBounds(bounds);
}

最佳答案

您在错误的位置将标志重置为 false。试试这个:

google.maps.event.addListener(map, 'idle', function() {
if(flag) {
// ignore this event
flag = false; // reset to false here
return;
}
else {
// do some work
}
});

function fitBounds() {
flag = true;
// rest of the function....
}

除此之外,最好将监听器附加到 bounds_changed 而不是 idle 事件。

关于javascript - 如何控制fitBounds是否改变边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com