Rất có thể bạn đang cố sử dụng ST_Intersects
với bí danh của một biểu thức, không phải là một cột hoặc một hình học. Và logic của bạn đang bị đảo ngược:trước tiên bạn cần phân tích cú pháp và kết xuất các hình từ bộ sưu tập tính năng của mình rồi áp dụng bộ lọc, chứ không phải ngược lại:
WITH datasource (feature) AS (
SELECT json_array_elements('{json_string}'::json->'features')
)
SELECT
ST_AsGeoJSON(ST_Union(ST_GeomFromGeoJSON(feature->>'geometry'))),
ST_AsText(ST_Union(ST_GeomFromGeoJSON(feature->>'geometry')))
FROM datasource
WHERE NOT ST_Intersects(ST_GeomFromGeoJSON(feature->>'geometry'),'{a geometry}');