在Postgres + postgis中收集x,y坐标的凸壳生成

时间:2016-03-30 07:42:42

标签: postgresql postgis spatial postgresql-9.3 spatial-query

我需要能够创建一个表并将几个x,y坐标存储为几何,然后才能为这些点生成凸包。

这是我到目前为止所拥有的

CREATE TABLE global_points ( 
id SERIAL PRIMARY KEY,
name VARCHAR(64),
location GEOMETRY(POINT,4326));

但我不太确定。如何将我的集合x,y坐标插入此表,然后为此几何体生成凸包?

需要使用postgres的potgis空间数据库扩展

来执行此操作

1 个答案:

答案 0 :(得分:3)

您应该提供有关您希望向表格添加点数的方式的更多信息。这是一个带有一些随机点的例子。

1)将数据插入表格

--insert points using geographical coordinates
INSERT INTO global_points (name, location) VALUES
('point1', ST_SetSRID(ST_MakePoint(-5, 25), 4326)),
('point2', ST_SetSRID(ST_MakePoint(1.2, -2.3), 4326)),
('point3', ST_SetSRID(ST_MakePoint(5.3, 21), 4326)),
('point4', ST_SetSRID(ST_MakePoint(2, 12), 4326));

2)从一组点计算凸包

--get the convex hull
SELECT ST_ConvexHull(ST_Collect(location)) AS convex_hull
FROM global_points;