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