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)
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, ...].
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.
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