Расстояние между точкой и многоугольником
задача
Рассчитайте расстояние d в метрах между точкой запроса q и многоугольником P.
Точка запроса q определяется как кортеж (широтаq, долготаq), многоугольник P как упорядоченный список кортежей [(широта1, долгота1),..., (широтаn, долготаn)].
проблема
Я не могу обрабатывать широту и долготу, как если бы они были x- и y- координатами плоскости, поскольку это приводит к огромным ошибкам, если многоугольник не мал и не близок (0, 0).
инструменты
Я знаю, как рассчитать расстояние между двумя точками с учетом широты и долготы каждой точки. Я также знаю, как рассчитать расстояние между точкой и большим кругом. Но для этой задачи мне нужно знать, как рассчитать расстояние dist (q, 1–2) между точкой q и частью большого круга 1–2. Расстояние от q будет просто min (dist (q, a-b)) ∀ a-b в P.
Вопрос
Можете ли вы дать мне формулу, как рассчитать расстояние между точкой запроса q, определенной кортежем (широтаq, долготаq), и большой круговой дугой, определенной парой широты-долготы-кортежей [(широта1, долгота1), (широта2, долгота2)]?
пример
1 ответ
Если бы у вас был код для вычисления расстояния между одной точкой x и сегментом геодезической линии s, вы могли бы повторить это для каждого ребра вашего геодезического многоугольника.
Пусть s= (a,b). s дуга большого круга. Поверните сферу так, чтобыs лежал на экваторе, а x следует вместе с вращением сферы. Тогда широта x по существу говорит вам расстояние до s: это либо расстояние от x до a, либо от x до b, либо, если x лежит в секторе выше / ниже s, это простой фактор (2 π r) раз широта