PostgreSQL 多边形列中的反向坐标
Reverse coordinates in PostgreSQL polygon column
我有一个 PostgreSQL 11 table 包含一个 POLYGON 列,目前大约有 100 行,每个多边形有 3 到大约 15 个角点。现在证明我错误地创建了我的 X 和 Y 坐标颠倒的数据。所以我现在想交换坐标来纠正这个错误。
最小工作示例:
CREATE TABLE geom_example (shape POLYGON);
INSERT INTO geom_example (shape) VALUES ('(1, 2), (5, 2), (1, 3)');
我想反转坐标以便
(1, 2), (5, 2), (1, 3)
变成:
(2, 1), (2, 5), (3, 1)
对于 table 的所有行。
有没有简单的方法可以做到这一点?
使用 ST_SwapOrdinates
,它就是为此而设计的:
SELECT ST_AsText(
ST_SwapOrdinates(
'POLYGON((1 2,5 2,1 3,1 2))'::geometry,
'xy'
)
);
st_astext
════════════════════════════
POLYGON((2 1,2 5,3 1,2 1))
(1 row)
我有一个 PostgreSQL 11 table 包含一个 POLYGON 列,目前大约有 100 行,每个多边形有 3 到大约 15 个角点。现在证明我错误地创建了我的 X 和 Y 坐标颠倒的数据。所以我现在想交换坐标来纠正这个错误。
最小工作示例:
CREATE TABLE geom_example (shape POLYGON);
INSERT INTO geom_example (shape) VALUES ('(1, 2), (5, 2), (1, 3)');
我想反转坐标以便
(1, 2), (5, 2), (1, 3)
变成:
(2, 1), (2, 5), (3, 1)
对于 table 的所有行。
有没有简单的方法可以做到这一点?
使用 ST_SwapOrdinates
,它就是为此而设计的:
SELECT ST_AsText(
ST_SwapOrdinates(
'POLYGON((1 2,5 2,1 3,1 2))'::geometry,
'xy'
)
);
st_astext
════════════════════════════
POLYGON((2 1,2 5,3 1,2 1))
(1 row)