如何在postgis中从另一个包含字段id和lat long point的表中创建一个包含几何多边形和字段id的表

lyfkaqu1  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(683)

我有下表,其中包含一个农场的字段坐标。我尝试用点坐标作为多边形的边来创建多边形。

CREATE TABLE field_point (
     field_id VARCHAR(64) PRIMARY KEY,
     point_latitude DOUBLE PRECISION,
     point_longitude DOUBLE PRECISION,
     point GEOMETRY(Point,4326),
);

我理解通过使用每个点的纬度和经度创建几何点。
然后,我收集坐标,在表格字段中创建点几何体,如下所示:

UPDATE field_point SET point = ST_Transform(ST_SetSRID(ST_MakePoint(point_longitude, point_latitude), 4326),4326);

最后,我收集新创建的点,并在另一个名为field的表上运行凸包函数,以返回如下多边形:

INSERT INTO field (polygon) SELECT ST_ConvexHull(ST_Collect(point)) FROM field_point GROUP BY field_id;

我现在无法从第一个表中获取字段\u id。你能帮忙吗?
预期结果如下表所示

CREATE TABLE field (
     field_id VARCHAR(64) PRIMARY KEY,
     polygon GEOMETRY(polygon,4326),
);

一行应该是从定义field\u point表中field\u id的所有点创建的多边形。
谢谢!

cgvd09ve

cgvd09ve1#

请使用下面的查询,

INSERT INTO field (field_id, polygon) 
SELECT field_id, ST_ConvexHull(ST_Collect(point)) FROM field_point;

相关问题