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

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

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.

Пример