Найти ближайшие точки на полигоне KML - PullRequest
0 голосов
/ 02 апреля 2019

На рисунке:

  • Красный - это точка GEO (из местоположения GEO)
  • Синий - это многоугольник KML
  • Зеленый - это радиус для проверки ближайших точек
  • Коричневые точки - это ближайшие точки на KML внутри радиуса

Как найти эти ближайшие точки математически?

Graphic

1 Ответ

1 голос
/ 02 апреля 2019
result = an empty list of points

for each edge of the KML polygon:
    if the edge is completely inside the green circle:
        append to result the point on the edge that is closest to the green circle center (see https://math.stackexchange.com/questions/2193720/find-a-point-on-a-line-segment-which-is-the-closest-to-other-point-not-on-the-li) 
    else:
        if the edge has two different intersections with the green circle:
            find the two intersection P1 and P2
            append to result the point (P1+P2)/2
        else:
            if the edge has one intersection with the green circle:
                append to result the intersection
            endif
        endif
    endif
endfor
...