我有一个如下所示的表格,有三列。
表:geomet
create table geomet
(
cola float,
colb float,
geopath geometry
);
插入记录:
insert into geomet values('12.32232442','43.2324535',point(12.32232442,43.2324535)::geometry);
我有这个:
select * from geomet;
cola colb geopath
---------------------------------------------------------------------
12.32232442 43.2324535 01010000004F34D5B407A528409D2B4A09C19D4540
注意:我需要在表格中找到列geopath
的相交,如上所示。我还安装了PostGIS
。
所以我试过这个:
尝试1 :
SELECT ST_Intersects(geopath) from geomet;
出错:
ERROR: function st_intersects(geometry) does not exist
尝试2 :
SELECT ST_Intersects(cola,colb) from geomet;
出错:
ERROR: function st_intersects(double precision, double precision) does not exist
答案 0 :(得分:3)
ST_Intersects需要两个几何或两个几何字段,因为您要检查一个几何与另一个或一个集和另一个集之间的交集。
SELECT ST_Intersects(geomA, geomB) FROM some_table;
或
SELECT a.id., b.id, ST_Intersects(a.geom, b.geom)
FROM table a, table b
WHERE a.id > b.id;
将为您提供两个表之间的所有成对交叉。显然,您可以以类似的方式在where子句中使用ST_Intersects,以仅返回两个不同表中的记录相交的行。