In code one below, there a query that finds the points of intersection in terms of longitude and latitude. And in code two, it is to show specific info like type, properties and geometry, etc.
What I want to achieve is to have the main query in code two contains information about the point of intersection "longitude and latitude" and the area as well. In other words, given the geom in code two, I would like to integrate code one into code two to have information about the points of intersection and area.
How can code one be integrated into code two?
code1_to find the coordinates of intersection:
query ="""SELECT ST_X(ST_Transform(point,4326)) as lon, ST_Y(ST_Transform(point,4326)) as lat, ST_AsText(ST_Transform(point,4326)),ST_Area(
ST_Intersection(
ST_SetSRID(
ST_MakeEnvelope(ST_X(point),ST_Y(point),ST_X(point)+{width}, ST_Y(point)+{height}),25832),
ST_Transform(
ST_SetSRID(ST_GeomFromGeoJSON(
'{geometry}'),4326)
,25832)))
FROM {table}
WHERE
st_intersects(
ST_Transform(
ST_SetSRID(ST_GeomFromGeoJSON(
'{geometry}'),4326)
,25832),
st_setsrid(ST_MakeEnvelope(st_x(point),st_y(point),st_x(point)+{width},st_y(point)+{height}),25832))""".format(table=config['PostgreDB']['table_name_test'], width=config['Grid']['cell_width'], height=config['Grid']['cell_height'],geometry=geometry)
code2:
query = """ WITH data AS (
SELECT '{featuresCollection}'::json AS featuresCollection
)
SELECT gid,geom,type::text,properties::text,
array_to_string(array_agg(x_4326||' '||y_4326 ORDER BY gid),',') AS g4326,
array_to_string(array_agg(x_25832||' '||y_25832 ORDER BY gid),',') AS g25832
FROM (
SELECT
ROW_NUMBER() OVER () AS gid,
ST_AsText(ST_GeomFromGeoJSON(feature->>'geometry')) AS geom,
feature->>'type' AS type,
feature->>'properties' AS properties,
ST_X((ST_DumpPoints((ST_GeomFromGeoJSON(feature->>'geometry')))).geom) x_4326,
ST_Y((ST_DumpPoints((ST_GeomFromGeoJSON(feature->>'geometry')))).geom) y_4326,
ST_X((ST_DumpPoints((ST_Transform(ST_SetSRID(ST_GeomFromGeoJSON(feature->>'geometry'),4326),25832)))).geom) x_25832,
ST_Y((ST_DumpPoints((ST_Transform(ST_SetSRID(ST_GeomFromGeoJSON(feature->>'geometry'),4326),25832)))).geom) y_25832
FROM (SELECT json_array_elements(featuresCollection->'features') AS feature FROM data) AS f) j
GROUP BY gid,type::text,properties::text,geom
ORDER BY gid;""".format(featuresCollection=featuresCollection)
Sample data:
[(3338490, 5668960, Decimal('1.02'), Decimal('52.08'), '0101000020E864000077D23C26C5A81441A9BAEC5A4F9E5541'), (3338490, 5668950, Decimal('0.77'), Decimal('52.13'), '0101000020E864000047A52726C5A81441D4552EDB4C9E5541'), (3338490, 5668940, Decimal('0.36'), Decimal('52.19'), '0101000020E864000005781226C5A8144109F16F5B4A9E5541')]
Image of some data in the table:
Data in the featureCollection:

code 1. Where does the variablepointcome from? Where is the GeoJSON for{geometry}?pointit is a column in table "s_30m_test" for '{geometry}' it must be substituted with geom from "feature->>'geometry'"s_30m_testand the exact expected result based on the given json document?