判断某个点(或区域)是否在另一个区域内
postgresql 判断某个点是否在geometry内
在PostgreSQL中,要判断一个点是否在一个geometry内,可以使用ST_Contains函数。这里是一个简单的例子:
假设我们有一个geometry对象the_geom,它代表了一个区域,以及一个点search_point,我们想要判断这个点是否在the_geom内。
SELECT ST_Contains(the_geom, search_point) AS is_inside
FROM your_table;
-- 例如
SELECT ST_Contains((SELECT geom FROM b WHERE gid = 3), st_geometryfromtext('POINT(120.1 30.1)',4326));
这里your_table是包含the_geom和search_point列的表的名称。search_point应该是一个点的geometry表示,而the_geom是表中相应行的geometry列。
GEOCS代表的是地理坐标系,也就是以经纬度表示的坐标系统,例如4326
PROJCS代表的投影坐标系,它是通过一种算法把球面坐标系转成平面坐标系,以便计算,一般是以米为单位表示, 例如26986
如果点在多边形内,ST_Contains将返回true,否则返回false。
确保你的geometry列是有效的WKT(Well-Known Text)或者EWKT(Extended Well-Known Text)格式,并且PostGIS扩展已经在数据库中安装和启用。
参考:
通过Postgis查询位置点是否落在指定区域内
SQL:postgresql中判断一个点是否落在指定区域
用postgresql(postgis) 查找指定范围内的geometries(point/linestring/polygon…)