PostgreSQL几何类型

PostgreSQL几何类型,postgresql,postgis,Postgresql,Postgis,我对博士后的几何函数有问题。基本上,我有一个多边形类型存储在postgres数据库中,我想检查我的一个点是否位于这个多边形中。Postgres对此有一个内置函数,但我在语法方面有点问题。真的不难理解,但我希望这里有人以前使用过这些函数,或者碰巧知道。一般来说,我对SQL有些陌生,所以这可能只是一些一般性问题。文档中有一个例子,请参见表9-30 至于语法,您可能正在沿着 SELECT * FROM yourtable WHERE yourcolumn @> point('1,1'); ST

我对博士后的几何函数有问题。基本上,我有一个多边形类型存储在postgres数据库中,我想检查我的一个点是否位于这个多边形中。Postgres对此有一个内置函数,但我在语法方面有点问题。真的不难理解,但我希望这里有人以前使用过这些函数,或者碰巧知道。一般来说,我对SQL有些陌生,所以这可能只是一些一般性问题。

文档中有一个例子,请参见表9-30

至于语法,您可能正在沿着

SELECT * FROM yourtable WHERE yourcolumn @> point('1,1');

ST_Contains可与ST_geomfromtext结合使用,以确定点是否位于该多边形中。我有一个表,其中列“poly”包含一个多边形,另一个表包含要检查的lat/lon值列表,它们位于该多边形内。将包含多边形的表连接到包含列表的表(在返回的每一行上提供lat/lon/poly),然后构建st_u语句

st_contains(poly, point)
这将获取定义的点并检查它是否在多边形中(我称之为“多边形”)。如果点位于该多边形内,则返回“t”

st_geomfromtext('POINT' st_geomfromtext('POINT('||lon||' ' ||lat ||')')
这将获取lat和lon值并将其转换为一个点

将两者放在where子句中:

where st_contains(poly, st_geomfromtext('POINT('||lon||' ' ||lat ||')')) = 't'
然后就是构建select子句的问题……我可以帮你,但你在问题中忽略了模式