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

flipCoordinates

Функция 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 г.