0

我正在开发一个将地址的纬度/经度信息存储在 PostGIS 表中的系统。要将 Lat/Long 存储在几何数据类型中,我使用 ST_GeometryFromText 函数。

例如,以下函数调用获取针对指定纬度/经度位置的几何值:

 myPointGeo =  ST_GeometryFromText('POINT(40.758871 -73.985114));

同样,我将 Polygon 转换为几何表示,如下所示:

myPolygonGeo =  ST_GeometryFromText('POLYGON ((40.7566484549725 -73.9878561496734, 40.7556894646734 -73.9853026866913, 40.7545841705587 -73.9860537052154, 40.7548036054111 -73.9881458282471, 40.7559820394514 -73.9887895584106, 40.7566484549725 -73.9878561496734 ))')

我想知道上面的纬度/经度位置是否位于这个多边形内。为此,我使用 ST_Within 函数。但是,尽管“myPointGeo”实际上位于多边形内,但 ST_Within 返回的是 false。我以这种方式使用 ST_Within:

 St_Within(myPointGeo,myPolygonGeo)

我在这里做错了什么?我应该为此目的使用其他功能吗?

4

1 回答 1

0

查询看起来正确。它返回false,因为该点不在多边形中。这两个几何形状是不相交的。

多边形中的点

于 2013-02-16T23:02:54.160 回答