flipCoordinates
flipCoordinates 関数は、point、Ring、Polygon、または multipolygon の座標の順序を入れ替えます。これは、たとえば緯度と経度の並び順が異なる座標系どうしを変換する際に便利です。
flipCoordinates(coordinates)入力パラメータ
coordinates— 点(x, y)を表すタプル、または Ring、Polygon、Multipolygon を表す、そのようなタプルの配列。サポートされる入力型は次のとおりです。- Point:
xとyが Float64 の値であるタプル(x, y)。 - Ring: 点の配列
[(x1, y1), (x2, y2), ...]。 - Polygon: Ring の配列
[ring1, ring2, ...]。各 Ring は点の配列です。 - Multipolygon: Polygon の配列
[polygon1, polygon2, ...]。
- Point:
戻り値
この関数は、座標を反転した入力を返します。例えば、次のとおりです。
- 点
(x, y)は(y, x)になります。 - Ring
[(x1, y1), (x2, y2)]は[(y1, x1), (y2, x2)]になります。 - Polygonやマルチポリゴンのようなネストされた構造は、再帰的に処理されます。
例
例 1: 1つの点を反転する
SELECT flipCoordinates((10, 20)) AS flipped_point┌─flipped_point─┐
│ (20,10) │
└───────────────┘例 2: 点のArray (Ring) を反転する
SELECT flipCoordinates([(10, 20), (30, 40)]) AS flipped_ring┌─flipped_ring──────────────┐
│ [(20,10),(40,30)] │
└───────────────────────────┘例 3: Polygon の座標を反転する
SELECT flipCoordinates([[(10, 20), (30, 40)], [(50, 60), (70, 80)]]) AS flipped_polygon┌─flipped_polygon──────────────────────────────┐
│ [[(20,10),(40,30)],[(60,50),(80,70)]] │
└──────────────────────────────────────────────┘例 4: Multipolygonを反転する
SELECT flipCoordinates([[[10, 20], [30, 40]], [[50, 60], [70, 80]]]) AS flipped_multipolygon┌─flipped_multipolygon──────────────────────────────┐
│ [[[20,10],[40,30]],[[60,50],[80,70]]] │
└───────────────────────────────────────────────────┘