Pular para o conteúdo principal

flipCoordinates

A função flipCoordinates inverte as coordenadas de um ponto, anel, polígono ou multipolígono. Isso é útil, por exemplo, ao converter entre sistemas de coordenadas em que a ordem de latitude e longitude é diferente.
flipCoordinates(coordinates)

Parâmetros de entrada

  • coordinates — Uma tupla que representa um ponto (x, y) ou um Array dessas tuplas que representa um anel, polígono ou multipolígono. Os tipos de entrada compatíveis incluem:
    • Point: Uma tupla (x, y) em que x e y são valores Float64.
    • Anel: Um Array de pontos [(x1, y1), (x2, y2), ...].
    • Polígono: Um Array de anéis [ring1, ring2, ...], em que cada anel é um Array de pontos.
    • Multipolígono: Um Array de polígonos [polygon1, polygon2, ...].

Valor retornado

A função retorna a entrada com as coordenadas invertidas. Por exemplo:
  • Um ponto (x, y) passa a ser (y, x).
  • Um anel [(x1, y1), (x2, y2)] passa a ser [(y1, x1), (y2, x2)].
  • Estruturas aninhadas, como polígonos e multipolígonos, são processadas recursivamente.

Exemplos

Exemplo 1: Invertendo um único ponto

SELECT flipCoordinates((10, 20)) AS flipped_point
┌─flipped_point─┐
│ (20,10)       │
└───────────────┘

Exemplo 2: Invertendo um Array de pontos (Ring)

SELECT flipCoordinates([(10, 20), (30, 40)]) AS flipped_ring
┌─flipped_ring──────────────┐
│ [(20,10),(40,30)]         │
└───────────────────────────┘

Exemplo 3: Invertendo um Polígono

SELECT flipCoordinates([[(10, 20), (30, 40)], [(50, 60), (70, 80)]]) AS flipped_polygon
┌─flipped_polygon──────────────────────────────┐
│ [[(20,10),(40,30)],[(60,50),(80,70)]]        │
└──────────────────────────────────────────────┘

Exemplo 4: Invertendo um multipolígono

SELECT flipCoordinates([[[10, 20], [30, 40]], [[50, 60], [70, 80]]]) AS flipped_multipolygon
┌─flipped_multipolygon──────────────────────────────┐
│ [[[20,10],[40,30]],[[60,50],[80,70]]]             │
└───────────────────────────────────────────────────┘
Última modificação em 10 de junho de 2026