如何使用 PostGIS 扩展将多边形插入数据库

Aru*_*s23 1 sql postgresql postgis psql

我有一个表,其中包含以这种方式创建的字段:

CREATE TABLE buildings(id SERIAL PRIMARY KEY, geom GEOMETRY, name VARCHAR(30));
Run Code Online (Sandbox Code Playgroud)

我想将简单的 2D 建筑插入其中,坐标如下 8 4, 10.5 4, 10.5 1.5, 8 1.5

INSERT INTO buildings(id, geom, name)
VALUES
(1, ST_GeomFromText('POLYGON(8 4, 10.5 4, 10.5 1.5, 8 1.5)'), 'BuildingA');
Run Code Online (Sandbox Code Playgroud)

由于某种原因我收到错误

ERROR:  parse error - invalid geometry
HINT:  "POLYGON(8 4" <-- parse error at position 11 within geometry
Run Code Online (Sandbox Code Playgroud)

如何将该多边形插入到表中?

Blu*_*tar 6

ST_GeomFromText以 WKT 作为参数。如果您查看WKT 格式,您会发现您的多边形需要另一对括号。您还希望多边形中的最后一个点与第一个点匹配。

INSERT INTO buildings(id, geom, name)
VALUES
(1, ST_GeomFromText('POLYGON((8 4, 10.5 4, 10.5 1.5, 8 1.5, 8 4))'), 'BuildingA');
Run Code Online (Sandbox Code Playgroud)