Функция flipCoordinates меняет местами координаты точки, Ring, Polygon или multipolygon. Это полезно, например, при преобразовании между системами координат, где порядок широты и долготы различается.
flipCoordinates(coordinates)
coordinates — кортеж, представляющий точку (x, y), или массив таких кортежей, представляющий Ring, Polygon или Multipolygon. Поддерживаются следующие входные типы:
- Point: кортеж
(x, y), где x и y — значения Float64.
- Ring: массив точек
[(x1, y1), (x2, y2), ...].
- Polygon: массив колец
[ring1, ring2, ...], где каждое кольцо — массив точек.
- Multipolygon: массив полигонов
[polygon1, polygon2, ...].
Функция возвращает входные данные с поменянными местами координатами. Например:
- Точка
(x, y) становится (y, x).
- Ring
[(x1, y1), (x2, y2)] становится [(y1, x1), (y2, x2)].
- Вложенные структуры, такие как Polygon и Multipolygon, обрабатываются рекурсивно.
Пример 1: Перестановка координат одной точки
SELECT flipCoordinates((10, 20)) AS flipped_point
┌─flipped_point─┐
│ (20,10) │
└───────────────┘
Пример 2: Перестановка координат в массиве точек (Ring)
SELECT flipCoordinates([(10, 20), (30, 40)]) AS flipped_ring
┌─flipped_ring──────────────┐
│ [(20,10),(40,30)] │
└───────────────────────────┘
Пример 3: Переворот Polygon
SELECT flipCoordinates([[(10, 20), (30, 40)], [(50, 60), (70, 80)]]) AS flipped_polygon
┌─flipped_polygon──────────────────────────────┐
│ [[(20,10),(40,30)],[(60,50),(80,70)]] │
└──────────────────────────────────────────────┘
Пример 4: Инвертирование Multipolygon
SELECT flipCoordinates([[[10, 20], [30, 40]], [[50, 60], [70, 80]]]) AS flipped_multipolygon
┌─flipped_multipolygon──────────────────────────────┐
│ [[[20,10],[40,30]],[[60,50],[80,70]]] │
└───────────────────────────────────────────────────┘
Последнее изменение 10 июня 2026 г.