Tengo la siguiente tabla que contiene las coordenadas de los campos de una granja. Estoy tratando de crear polígonos usando coordenadas de puntos como bordes de esos polígonos.
CREATE TABLE field_point ( field_id VARCHAR(64) PRIMARY KEY, point_latitude DOUBLE PRECISION, point_longitude DOUBLE PRECISION, point GEOMETRY(Point,4326), );Entiendo que al crear puntos de geometría usando la latitud y la longitud de cada punto.
Luego recopilo las coordenadas para crear una geometría de punto en la tabla field_point como tal:
UPDATE field_point SET point = ST_Transform(ST_SetSRID(ST_MakePoint(point_longitude, point_latitude), 4326),4326);Por último, recopilo el punto recién creado y ejecuto la función convex_hull en otra tabla llamada campo para devolver polígonos como tales:
INSERT INTO field (polygon) SELECT ST_ConvexHull(ST_Collect(point)) FROM field_point GROUP BY field_id;Ahora no puedo traer el field_id de la primera tabla. ¿Podrías ayudar?
El resultado esperado debe ser la siguiente tabla
CREATE TABLE field ( field_id VARCHAR(64) PRIMARY KEY, polygon GEOMETRY(polygon,4326), );una fila debe ser el polígono creado a partir de todos los puntos que definen field_id de la tabla field_point.
¡Gracias!
Utilice la siguiente consulta,
INSERT INTO field (field_id, polygon) SELECT field_id, ST_ConvexHull(ST_Collect(point)) FROM field_point;