flipCoordinates
La función flipCoordinates intercambia las coordenadas de un punto, anillo, polígono o multipolígono. Esto resulta útil, por ejemplo, al convertir entre sistemas de coordenadas en los que el orden de la latitud y la longitud es distinto.
flipCoordinates(coordinates)Parámetros de entrada
coordinates— Una tupla que representa un punto(x, y), o un arreglo de esas tuplas que representa un anillo, un polígono o un multipolígono. Los tipos de entrada admitidos incluyen:- Point: Una tupla
(x, y)dondexeyson valores Float64. - Ring: Un arreglo de puntos
[(x1, y1), (x2, y2), ...]. - Polygon: Un arreglo de anillos
[ring1, ring2, ...], donde cada anillo es un arreglo de puntos. - Multipolygon: Un arreglo de polígonos
[polygon1, polygon2, ...].
- Point: Una tupla
Valor devuelto
La función devuelve el valor de entrada con las coordenadas invertidas. Por ejemplo:
- Un punto
(x, y)se convierte en(y, x). - Un anillo
[(x1, y1), (x2, y2)]se convierte en[(y1, x1), (y2, x2)]. - Las estructuras anidadas, como los polígonos y los multipolígonos, se procesan de forma recursiva.
Ejemplos
Ejemplo 1: Invertir un solo punto
SELECT flipCoordinates((10, 20)) AS flipped_point┌─flipped_point─┐
│ (20,10) │
└───────────────┘Ejemplo 2: Invertir un Array de puntos (anillo)
SELECT flipCoordinates([(10, 20), (30, 40)]) AS flipped_ring┌─flipped_ring──────────────┐
│ [(20,10),(40,30)] │
└───────────────────────────┘Ejemplo 3: Invertir un 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)]] │
└──────────────────────────────────────────────┘Ejemplo 4: Inversión de un 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]]] │
└───────────────────────────────────────────────────┘