GoogleマップAPI v3を使用しています。マップ上のすべてのイベントをキャッチする必要があり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);
}