Saltar al contenido principal

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) donde x e y son 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, ...].

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]]]             │
└───────────────────────────────────────────────────┘
Última modificación el 10 de junio de 2026