Перейти к основному содержимому
Перейти к основному содержимому

Функции для работы с географическими координатами

greatCircleDistance

Вычисляет расстояние между двумя точками на поверхности Земли, используя формулу большого круга.

Входные параметры

  • lon1Deg — Долгота первой точки в градусах. Диапазон: [-180°, 180°].
  • lat1Deg — Широта первой точки в градусах. Диапазон: [-90°, 90°].
  • lon2Deg — Долгота второй точки в градусах. Диапазон: [-180°, 180°].
  • lat2Deg — Широта второй точки в градусах. Диапазон: [-90°, 90°].

Положительные значения соответствуют северной широте и восточной долготе, а отрицательные значения соответствуют южной широте и западной долготе.

Возвращаемое значение

Расстояние между двумя точками на поверхности Земли в метрах.

Генерирует исключение, когда значения входных параметров выходят за пределы диапазона.

Пример

geoDistance

Аналогичен greatCircleDistance, но вычисляет расстояние по эллипсоиду WGS-84 вместо сферы. Это более точное приближение геоида Земли. Производительность такая же, как у greatCircleDistance (без потери производительности). Рекомендуется использовать geoDistance для вычисления расстояний на Земле.

Техническая заметка: для достаточно близких точек расстояние вычисляется с использованием планарного приближения с метрикой на касательной плоскости в средней точке координат.

Входные параметры

  • lon1Deg — Долгота первой точки в градусах. Диапазон: [-180°, 180°].
  • lat1Deg — Широта первой точки в градусах. Диапазон: [-90°, 90°].
  • lon2Deg — Долгота второй точки в градусах. Диапазон: [-180°, 180°].
  • lat2Deg — Широта второй точки в градусах. Диапазон: [-90°, 90°].

Положительные значения соответствуют северной широте и восточной долготе, а отрицательные значения соответствуют южной широте и западной долготе.

Возвращаемое значение

Расстояние между двумя точками на поверхности Земли в метрах.

Генерирует исключение, когда значения входных параметров выходят за пределы диапазона.

Пример

greatCircleAngle

Вычисляет центральный угол между двумя точками на поверхности Земли, используя формулу большого круга.

Входные параметры

  • lon1Deg — Долгота первой точки в градусах.
  • lat1Deg — Широта первой точки в градусах.
  • lon2Deg — Долгота второй точки в градусах.
  • lat2Deg — Широта второй точки в градусах.

Возвращаемое значение

Центральный угол между двумя точками в градусах.

Пример

pointInEllipses

Проверяет, принадлежит ли точка хотя бы одной из эллипс. Координаты являются геометрическими в декартовой системе координат.

Входные параметры

  • x, y — Координаты точки на плоскости.
  • xᵢ, yᵢ — Координаты центра i-го эллипса.
  • aᵢ, bᵢ — Оси i-го эллипса в единицах координат x, y.

Входные параметры должны быть равны 2+4⋅n, где n — количество эллипсов.

Возвращаемые значения

1, если точка внутри хотя бы одного из эллипсов; 0, если это не так.

Пример

pointInPolygon

Проверяет, принадлежит ли точка многоугольнику на плоскости.

Входные значения

  • (x, y) — Координаты точки на плоскости. Тип данных — Tuple — Кортеж из двух чисел.
  • [(a, b), (c, d) ...] — Вершины многоугольника. Тип данных — Array. Каждая вершина представлена парой координат (a, b). Вершины должны быть указаны в часовой или против часовой стрелке. Минимальное количество вершин — 3. Многоугольник должен быть постоянным.
  • Функция также поддерживает многоугольники с отверстиями (вырезанные секции). В этом случае добавьте многоугольники, определяющие вырезанные секции, с помощью дополнительных аргументов функции. Функция не поддерживает многосвязные многоугольники.

Возвращаемые значения

1, если точка внутри многоугольника, 0, если это не так. Если точка находится на границе многоугольника, функция может вернуть либо 0, либо 1.

Пример