-- Create a table for areas
CREATE TABLE areas (
tenant_id uuid,
id INTEGER,
name VARCHAR(100),
boundary geometry(POLYGON, 4326),
PRIMARY KEY (tenant_id, id)
);
-- Insert multiple polygons (simplified boundaries)
INSERT INTO areas (tenant_id, id, name, boundary) VALUES
('d1c06023-3421-4fbb-9dd1-c96e42d2fd02', 1, 'Central Park',
ST_SetSRID(ST_MakePolygon(ST_GeomFromText('LINESTRING(
-73.968285 40.785091,
-73.961675 40.785091,
-73.961675 40.780467,
-73.968285 40.780467,
-73.968285 40.785091
)')), 4326)),
('d1c06023-3421-4fbb-9dd1-c96e42d2fd02', 2, 'Area1',
ST_SetSRID(ST_MakePolygon(ST_GeomFromText('LINESTRING(
-73.965 40.783,
-73.960 40.783,
-73.960 40.779,
-73.965 40.779,
-73.965 40.783
)')), 4326)),
('d1c06023-3421-4fbb-9dd1-c96e42d2fd02', 3, 'Area2',
ST_SetSRID(ST_MakePolygon(ST_GeomFromText('LINESTRING(
-73.963 40.784,
-73.958 40.784,
-73.958 40.780,
-73.963 40.780,
-73.963 40.784
)')), 4326));
-- Find points within the area
SELECT p.name
FROM points_of_interest p
JOIN areas a ON ST_Contains(a.boundary, p.location)
WHERE a.name = 'Central Park';