Нямам достатъчно репутация, за да коментирам въпроса ви, има връзка, която може да ви бъде полезна:SQL заявка за точка-в-многоъгълник с помощта на PostgreSQL
Добавяне на разширение за вашата база данни
CREATE EXTENSION postgis;
Създаване на таблица
CREATE TABLE areas (
id SERIAL PRIMARY KEY,
name VARCHAR(64),
polygon GEOMETRY
);
Създаване на индекс върху многоъгълно поле
CREATE INDEX areas_polygon_idx ON areas USING GIST (polygon);
Вмъкване на запис
INSERT INTO areas (name, polygon) VALUES (
'A',
ST_GeometryFromText('POLYGON((50.6373 3.0750,50.6374 3.0750,50.6374 3.0749,50.63 3.07491,50.6373 3.0750))')
);
Запитване
SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.637 3.074)'));
name
------
(0 rows)
SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.63735 3.07495)'));
name
------
A
(1 row)