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

Postgresql 如何搜索Postgres中所有多边形内的所有点,postgresql,postgis,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

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

这些是我的桌子

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

似乎您正在使用PostgreSQL的内置
多边形
类型,但您希望使用PostGIS函数,该函数将PostGIS
几何体
类型作为参数

如果是,从这里开始:


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

您似乎正在使用PostgreSQL的内置
多边形
类型,但您希望使用以PostGIS
几何体
类型为参数的PostGIS函数

如果是,从这里开始:


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

您使用的是PostGIS吗?还是内置的PostgreSQL形状数据类型?您未能提供表定义,因此很难知道。您是指多边形点和点的类型吗?多边形点的类型是多边形,点是点我找到了一个我云计算使用的函数,它是布尔ST_交叉(几何g1,几何g2);但问题是我想在点和多边形之间使用这个函数,所以我如何将点和多边形转换为几何体,因为我在谷歌上看到的问题是,列多边形点被定义为“几何体”或“地理”数据类型,或者您是否使用varchar字段并将其存储为数组?可以使用st_geomfromtext在几何体字段中创建多边形。是否使用PostGIS?还是内置的PostgreSQL形状数据类型?您未能提供表定义,因此很难知道。您是指多边形点和点的类型吗?多边形点的类型是多边形,点是点我找到了一个我云计算使用的函数,它是布尔ST_交叉(几何g1,几何g2);但问题是我想在点和多边形之间使用这个函数,所以我如何将点和多边形转换为几何体,因为我在谷歌上看到的问题是,列多边形点被定义为“几何体”或“地理”数据类型,或者您是否使用varchar字段并将其存储为数组?可以使用st_geomfromtext在几何体字段中创建多边形。