Вы должны быть в состоянии сделать это с диаграммой Вороного с O (n log n) временем предварительной обработки с O (log n) запросами времени.Поскольку объекты являются прямоугольниками, а не точками, ячейки могут быть изогнуты.Тем не менее, диаграмма Вороного должна хорошо работать в ваших целях.(См. http://en.wikipedia.org/wiki/Voronoi_diagram)
. Для быстрого и грязного решения, которое вы могли бы действительно получить в течение дня, вы могли бы сделать что-то, вдохновленное локальным хэшированием. Например, если прямоугольники расположены достаточно хорошо, выможет хешировать их в квадратные сегменты с несколькими различными смещениями, а затем для каждого запроса исследовать каждый прямоугольник, попадающий в одну из нескольких групп, содержащих точку запроса.