**10**wrote:

Hello!

I'm in search for an algorithm/data structure which would enable efficient "window query" over a set of rectangles (2D). That is, given many (possibly overlapping) rectangles report all the ones overlapped by a given query rectangle. In 1D, this is known as interval intersection or range overlap. I found two very interesting posts here:

Fast Interval Intersection Methodologies

What Is The Quickest Algorithm For Range Overlap?

so I was wondering that perhaps someone could have an idea on how to approach this problem. I know about R-trees but perhaps there are some additional suitable data structures?

Thank you in advance!

You'll want to post this to stackoverflow, which has a more CS-centric community. For what it's worth, my go to structure would also be an R-tree (or variant thereof) for this sort of task.

94kThanks a lot for the reply!

Unfortunately, I cannot think of a way how to make the "intersection" efficient, i.e. better than O(n). What I mean by that is consider the following example:

▢▢▢▢▢▢▢▢▢▢▢▢▢▢▢▢▢▢

and if the window overlaps just one of the rectangles I first would have to report everything along the "x" axis only to discard most of the result in the "y query".

10