У меня есть таблица с 200000 точек и еще одна таблица с около 50000 полигонов в PostGIS. Полигоны могут перекрываться друг с другом.
Как я могу запросить PostGIS, чтобы получить флаг для каждой точки, указывающий, пересекает ли он какой-либо полигон или нет? Точка может касаться наложенных на деревья полигонов, но я хочу, чтобы значение true или false, только если касается любого многоугольника в таблице.
Обновлено с примерами данных:
CREATE TABLE poi (id integer,geom GEOMETRY);
INSERT INTO poi VALUES (1,'POINT(28 27)');
INSERT INTO poi VALUES (2,'POINT(12.1321018521888 30.2084895425822)');
INSERT INTO poi VALUES (3,'POINT(24.1330003363259 37.3570074902601)');
INSERT INTO poi VALUES (4,'POINT(41.9053232823 31.3888090347548)');
INSERT INTO poi VALUES (5,'POINT(37.1416078534822 18.033534226006)');
INSERT INTO poi VALUES (6,'POINT(34.3933104907027 18.7290161619684)');
CREATE TABLE poly (geom GEOMETRY);
INSERT INTO poly VALUES ('POLYGON((30 10,40 40,20 40,10 20,30 10))');
INSERT INTO poly VALUES ('POLYGON((35 15,38 30,20 35,35 15))');
Результат, который я хочу:
1 true
2 false
3 true
4 false
5 false
6 true