Вы можете построить дерево, чтобы структурировать ваши полигоны или создать сетку, где вы можете хранить списки полигонов, которые пересекают ячейки.Это зависит от размера вашей проблемы и конкретных вещей.Основная идея состоит в том, чтобы работать только с полигонами, которые находятся вблизи точки.
Если вы имеете дело с геометрией Манхэттена, то вы можете рассмотреть возможность использования дерева интервалов,
см. Википедию: http://en.wikipedia.org/wiki/Interval_tree
и хорошая книга для подробностей:
Марк де Берг, Марк ван Кревельд, Марк Овермарс и Отфрид Шварцкопф.Вычислительная геометрия, второе пересмотренное издание.Springer-Verlag 2000. Раздел 10.1: Деревья интервалов, стр. 212–217.