Определить внешние границы многоугольника из массива точек широты/долготы

У меня есть большой массив точек широты/долготы. Может быть до 20к баллов. Я рисую их с помощью KML. Что я хочу сделать, так это взять только самые крайние точки и использовать их для рисования многоугольника. Я уже знаю, как рисовать многоугольник в kml, мне просто нужно понять, как выделить только самые внешние точки группы.

Есть идеи? Я хотел бы иметь не менее 5 точек на полигон, но не более 25 точек в сумме.

До сих пор я придумал проверку самых верхних и самых нижних точек (в основном создавая квадрат), используя логику ‹ & >.

Очки будут в Америке и Канаде, только если это имеет значение.

Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: я заставил алгоритм Convex Hull работать, но это не совсем то, что мне нужно. Я пытаюсь составить карту почтовых индексов. Если почтовый индекс имеет форму буквы L, то многоугольник будет иметь форму треугольника, а не форму буквы L. Есть идеи?


person Dustin Davis    schedule 02.06.2010    source источник
comment
Если ваш набор точек достаточно плотный, вы можете использовать алгоритм активного контура (или змей), чтобы найти приемлемую границу. В этот момент вы знакомитесь с некоторыми довольно продвинутыми методами обработки изображений. См. en.wikipedia.org/wiki/Active_contour_model для некоторых основ.   -  person Lucas    schedule 28.03.2011


Ответы (1)


Вам нужно использовать алгоритм выпуклой оболочки. Это не так уж сложно реализовать самостоятельно, если это недоступно в каком-либо программном пакете, который вы используете.

person Lucas    schedule 02.06.2010
comment
Благодарю. Я очень плохо разбираюсь в математике, поэтому я посмотрю, смогу ли я получить уже закодированный пример и дам вам знать, что происходит. - person Dustin Davis; 02.06.2010