Passer au contenu principal

flipCoordinates

La fonction flipCoordinates inverse les coordonnées d’un point, d’un anneau, d’un polygone ou d’un multipolygone. Cela est utile, par exemple, lors de la conversion entre des systèmes de coordonnées où l’ordre de la latitude et de la longitude diffère.
flipCoordinates(coordinates)

Paramètres d’entrée

  • coordinates — Un tuple représentant un point (x, y), ou un tableau de tuples de ce type représentant un anneau, un polygone ou un multipolygone. Les types d’entrée pris en charge sont les suivants :
    • Point : un tuple (x, y)x et y sont des valeurs Float64.
    • anneau : un tableau de points [(x1, y1), (x2, y2), ...].
    • polygone : un tableau d’anneaux [ring1, ring2, ...], où chaque anneau est un tableau de points.
    • multipolygone : un tableau de polygones [polygon1, polygon2, ...].

Valeur renvoyée

La fonction renvoie la valeur d’entrée avec les coordonnées inversées. Par exemple :
  • Un point (x, y) devient (y, x).
  • Un anneau [(x1, y1), (x2, y2)] devient [(y1, x1), (y2, x2)].
  • Les structures imbriquées, comme les polygones et les multipolygones, sont traitées récursivement.

Exemples

Exemple 1 : Inversion d’un seul point

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

Exemple 2 : inversion d’un Array de Points (anneau)

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

Exemple 3 : inverser un polygone

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

Exemple 4 : Inversion d’un multipolygone

SELECT flipCoordinates([[[10, 20], [30, 40]], [[50, 60], [70, 80]]]) AS flipped_multipolygon
┌─flipped_multipolygon──────────────────────────────┐
│ [[[20,10],[40,30]],[[60,50],[80,70]]]             │
└───────────────────────────────────────────────────┘
Dernière modification le 29 juin 2026