Функции для работы с географическими координатами
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.
Пример