Я пытаюсь построить MKPolygon, используя внешнюю границу набора координат.
Насколько я могу судить, в Xcode
нет функциональности для достижения этого (методы MKPolygon будут использовать все точки для построения многоугольника, включая внутренние точки).
После некоторых исследований я обнаружил, что выпуклая оболочка решает эту проблему. Изучив различные алгоритмы, я могу лучше всего понять, как реализовать это QuickHull.
Это берет внешние координаты широты и проводит линию между ними. Оттуда вы разделяете свои точки на основе этой линии на два подмножества и обрабатываете расстояние между внешними широчайшими, чтобы начать строить треугольники и исключать точки внутри, пока не останется внешняя граница.
Я могу найти внешние точки, просто взглянув на минимальную/максимальную широту, и могу провести линию между ними (MKPolyline
), но как мне определить, попадает ли точка на одну или другую сторону этой MKPolyline?
Дополнительный вопрос заключается в том, существует ли проверка попаданий, чтобы определить, попадают ли точки в MKPolygon.
Спасибо!