ST_WITHIN 函数不存在

ST_WITHIN function does not exist

我对如何在我的查询中使用这个函数感到困惑。我使用的代码如下:

$res = pg_query($conn, 'SELECT "Coordinates" FROM "Shapes" WHERE st_within(point(0,0)::geometry, "Coordinates") ');

当我尝试 运行 时,我得到了这个错误:


警告:pg_query_params():查询失败:错误:函数st_within(几何、地理)不存在

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

我想要坐标为多边形,因此这可能需要是一个几何图形数组

ST_Within 函数采用两个几何参数,如“ST_Within(几何 A,几何 B)”。您应该确保“坐标”的参数实际上是几何参数。

我做了一些研究并尝试了一些不同的功能,因此我得到了不同的错误,一个是这样出现的:

警告:pg_query_params():查询失败:错误:包含:对混合 SRID 几何图形(多边形,4326)的操作!= (点,0)在 /var/www/html/watchlist/coordChange.php45

使用以下代码:

pg_query($conn, 'SELECT "Coordinates" FROM "Shapes" WHERE st_within( ST_MakePoint(130, -25), "Coordinates"::geometry) ');

从这里我搜索了更多并使用了另一个函数 ST_SetSRID(),如下所示:

pg_query($conn, 'SELECT "Coordinates" FROM "Shapes" WHERE st_within( ST_SetSRID( ST_MakePoint(130, -25), 4326), "Coordinates"::geometry) '); 

这就产生了我想要的结果。