Цель : По координате X найти «n» ближайшую прямую-многоугольник для координаты X, а не только «n» ближайших точек.Пример: https://i.imgur.com/qyxV2MF.png
У меня есть группа пространственных многоугольников, которые могут иметь более 2 координат.Их координаты хранятся в (scipy) KDtree, чтобы включить поиск по NN.
Сначала я запросю число ближайших координат "i", а затем отыскиваю соответствующие координаты line-polygons-> "i", не обязательнопроизводим строки "i".
Чтобы достичь "n" ближайших строк, мне нужно будет увеличить "i".Моя проблема в том, что «я» может быть непредсказуемым, потому что число координат варьируется между каждым полигоном линии.Например, линия-многоугольник может быть представлена 2-мя координатами, а другая может быть представлена с помощью 10-ти координат.В большинстве случаев мне нужно только 2 ближайших соседних линейных полигона из точки X.
В примере изображения мне нужны линии A и B в качестве результата.Даже если «i» = 3, будет найдена только строка A, поскольку A1, A2, A3 являются ближайшими соседями к X.
Вопрос : есть ли способ группировкикоординаты фигуры вместе, а затем выполнить поиск NN, чтобы получить "n" уникальных фигур?(кроме грубой форсировки «i» для обеспечения «n» уникальных форм)
Текущий псевдокод обхода:
found = []
while True:
if first_loop:
result = look up N nearest coords
else:
result = look up Nth nearest coord
look up shapes using result and append to found
perform de-duplication of found
if len(found) >= required:
return found
else:
N = N+1 # to check the Nth neighbor next iteration