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 quexeysã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, ...].
- Point: Uma tupla
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]]] │
└───────────────────────────────────────────────────┘