メインコンテンツへスキップ
メインコンテンツへスキップ

座標の入れ替え

flipCoordinates

flipCoordinates 関数は、ポイント、リング、ポリゴン、またはマルチポリゴンの座標を入れ替えます。これは、たとえば緯度と経度の順序が異なる座標系間で変換する場合に役立ちます。

flipCoordinates(coordinates)

入力パラメータ

  • coordinates — 点 (x, y) を表すタプル、またはリング、ポリゴン、マルチポリゴンを表すそのようなタプルからなる配列。サポートされる入力型は次のとおりです:
    • Point: xyFloat64 値であるタプル (x, y)
    • Ring: [(x1, y1), (x2, y2), ...] のような点の配列。
    • Polygon: [ring1, ring2, ...] のようなリングの配列で、各リングは点の配列です。
    • Multipolygon: [polygon1, polygon2, ...] のようなポリゴンの配列です。

返り値

この関数は、座標を入れ替えた結果を返します。たとえば:

  • (x, y)(y, x) になります。
  • リング [(x1, y1), (x2, y2)][(y1, x1), (y2, x2)] になります。
  • ポリゴンやマルチポリゴンのようなネストされた構造は再帰的に処理されます。

例 1: 単一の点の座標を入れ替える

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

例 2: 点の配列(リング)を反転する

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

例 3:多角形の反転

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

例 4: マルチポリゴンを反転する

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