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在几何体字段中创建多边形。