st_contains不匹配linestring中的点

时间:2015-07-03 05:57:59

标签: postgresql postgis

我的数据包含线串几何。

select st_astext(fullpath) from t limit 1;
-----------------------------------------------------------
LINESTRING(-117.9394066 33.7621968,-117.9394143 33.7618166)

如果我尝试通过该行中的一个点选择此记录,则它不匹配。

select * from t where st_contains(fullpath, st_makepoint(33.7618166,-117.9394143));
-----------------------------------------------------------------------------------
0 records found

阅读这个函数的文档,我看不出我做错了什么。

1 个答案:

答案 0 :(得分:0)

使用ST_Covers

这是从@mlt的注释中修改的示例:

test=# select ST_Covers(ST_GeomFromText('LINESTRING(-117.9394066 33.7621968,-117.9394143 33.7618166)'), st_makepoint(-117.9394066, 33.7621968));
 st_covers 
-----------
 t
(1 row)