如何在 postgresql 中创建多边形
How to create a polygon in postgresql
我从 google 地图中随机选择了一些点并想创建多边形,我创建了一个 table 并尝试创建多边形。
CREATE TABLE public."place"
(
id integer NOT NULL,
polygon geometry(polygon,4326),
count double precision,
PRIMARY KEY (id)
);
INSERT INTO public."place" VALUES (1, ST_GeomFromText('POLYGON((9.693588094112373 52.39414543838985, 9.694328501691626 52.39397380868952, 9.694174756472517 52.39362874161061, 9.693445118144536 52.393639872848816))', 4326), 34);
创建了table,但是错误是
ERROR: geometry contains non-closed rings HINT: "...18144536
52.393639872848816))" <-- parse error at position 166 within geometry
我不知道如何纠正它。有什么建议吗?
要使多边形有效,其中的所有环都必须闭合,这意味着第一个点和最后一个点必须是相同的坐标。如果它们不匹配,则会抛出此错误,因为 PostGIS 假定您犯了一个错误。
在最后添加第一个点作为附加点,环将被视为闭合并可以创建多边形:
INSERT INTO public."place" VALUES (1, ST_GeomFromText('POLYGON((9.693588094112373 52.39414543838985, 9.694328501691626 52.39397380868952, 9.694174756472517 52.39362874161061, 9.693445118144536 52.393639872848816, 9.693588094112373 52.39414543838985))', 4326), 34);
我从 google 地图中随机选择了一些点并想创建多边形,我创建了一个 table 并尝试创建多边形。
CREATE TABLE public."place"
(
id integer NOT NULL,
polygon geometry(polygon,4326),
count double precision,
PRIMARY KEY (id)
);
INSERT INTO public."place" VALUES (1, ST_GeomFromText('POLYGON((9.693588094112373 52.39414543838985, 9.694328501691626 52.39397380868952, 9.694174756472517 52.39362874161061, 9.693445118144536 52.393639872848816))', 4326), 34);
创建了table,但是错误是
ERROR: geometry contains non-closed rings HINT: "...18144536 52.393639872848816))" <-- parse error at position 166 within geometry
我不知道如何纠正它。有什么建议吗?
要使多边形有效,其中的所有环都必须闭合,这意味着第一个点和最后一个点必须是相同的坐标。如果它们不匹配,则会抛出此错误,因为 PostGIS 假定您犯了一个错误。
在最后添加第一个点作为附加点,环将被视为闭合并可以创建多边形:
INSERT INTO public."place" VALUES (1, ST_GeomFromText('POLYGON((9.693588094112373 52.39414543838985, 9.694328501691626 52.39397380868952, 9.694174756472517 52.39362874161061, 9.693445118144536 52.393639872848816, 9.693588094112373 52.39414543838985))', 4326), 34);