Мой набор данных выполнен из множества прямоугольников, которые лежат на плоскости x, y (представлены набором четырех точек). 99,9% времени эти прямоугольники не будут перекрываться, но очень редко они будут. Я пытаюсь найти оптимальную структуру данных для хранения прямоугольников, чтобы найти экземпляры пересечения.Структура данных для определения пересечения прямоугольника с большим набором прямоугольников
Кстати, прямоугольники содержат текст, поэтому я делаю это, чтобы найти вхождения одного и того же текста. Это связано с тем, что вхождения, подобные этому, должны рассматриваться как один прямоугольник текста вместо двух.
Например: Предположим, что я ищу текст «123». Есть два прямоугольника. Первый прямоугольник содержит «TEST 123», а второй содержит «123». Если «123» перекрывается с «123» в первом прямоугольнике (в пределах заданного порога), тогда мой результат поиска должен возвращать только одно вхождение текста «123».
До сих пор я кратко рассмотрел квадранты, r-деревья, деревья k-d и деревья диапазона. Я мало знаю об этих деревьях, и не знаю, будет ли кто-нибудь работать над этой проблемой. Я чувствую, что r-tree не будет оптимальным в этом случае, потому что вероятность перекрытия очень мала.