如何搜索Postgres中所有多边形内的所有点

时间:2012-07-08 22:48:09

标签: postgresql postgis

我想搜索所有多边形内特定用户的所有点并显示多边形

这些是我的表

users 

 id   points 
 1     1
 1     2
 1     3
 1     4
 2     3
 3     1

 poly

  polygon-points    poly-name
  (1,2,4,5)          store
  (1,3)              shoop

我写了这段代码

BEGIN
FOR poly-name IN SELECT poly-name FROM poly

LOOP
    FOR points IN SELECT * FROM users
    LOOP
    points@poly-name
    END LOOP;

END LOOP;
RETURN;
END

1 个答案:

答案 0 :(得分:1)

您似乎正在使用PostgreSQL的内置pointpolygon类型,但您希望使用PostGIS geometry类型的PostGIS函数ST_Crosses参数。

如果有,请从这里开始:SQL query for point-in-polygon using PostgreSQL

请注意,PostGIS是PostgreSQL的附加组件。您可能没有安装它,可能需要安装它才能获得ST_Crosses功能(以及批次更多)。