У меня есть некоторые пространственные данные, все координаты которых представлены в виде пар широта/долгота (с десятичной точностью около 10 цифр), они хранятся в базе данных как данные WGS84. Некоторые данные представлены в виде многоугольников, которые являются результирующим объединением несколько меньших полигонов, границы которых сохраняются. Затем у меня есть несколько точек, из которых я строю сегменты линий (всего 2 точки в каждом сегменте), которые я использую позже для тестов пересечения с полигонами.
Я использую SpatialIndex для улучшения своих запросов, поэтому я вставляю оболочки всех полигонов в дерево (протестировано как с QuadTree, так и с STRtree). Затем я соединяю две точки в линейный сегмент и использую его оболочку для запроса дерева. для возможных пересечений. Проблема в том, что в результате я получаю почти все полигоны, что явно неверно. Чтобы дать вам некоторое представление о реальном масштабе моих данных, у меня есть около 100 полигонов, которые охватывают всю Северную Америку, каждый линия покрывает очень-очень маленькую часть одного полигона. В идеале я бы ожидал, что в результате получится не более 2-х полигонов.
Я использую JTS для этого расчета, и я знаю, что он не очень подходит для сферических данных, поэтому можете ли вы предложить мне другую библиотеку/инструмент для достижения желаемого поведения или возможного обходного пути (например, проецирование перед использованием JTS)?