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

How to insert polygon into database with PostGIS extension

我有一个 table 字段是这样创建的:

CREATE TABLE buildings(id SERIAL PRIMARY KEY, geom GEOMETRY, name VARCHAR(30));

我想用以下坐标将简单的二维建筑插入其中 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');

出于某种原因,我得到了一个错误

ERROR:  parse error - invalid geometry
HINT:  "POLYGON(8 4" <-- parse error at position 11 within geometry

如何将该多边形插入 table?

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

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');