ST_Within
如果空间对象 g1
完全在空间对象 g2
内部,则 ST_Within 将返回 True。两个参数必须是相同的空间数据类型。要么指定两个 GEOMETRY 对象,要么指定两个 GEOGRAPHY 对象。
如果某个对象(例如点或线串)仅沿多边形边界存在,则 ST_Within 将返回 False。线串的内部是线串上除起点和终点以外的所有点。
ST_Within(g``g
is functionally equivalent to ST_Contains(g``g
.
不支持顶点或边界位于国际日期变更线 (IDL) 或南、北极的 GEOGRAPHY 多边形。
行为类型
不可变语法
ST_Within( g1, g2
[USING PARAMETERS spheroid={true | false}] )
参数
g1
- 空间对象,类型为 GEOMETRY 或 GEOGRAPHY
g2
- 空间对象,类型为 GEOMETRY 或 GEOGRAPHY
参数
spheroid = {true | false}
(可选)用于指定是否使用理想球体或 WGS84 的 BOOLEAN 值。
默认值:False
返回
BOOLEAN
支持的数据类型
兼容的 GEOGRAPHY 对:
示例
以下示例显示了 ST_Within 的用法。
第一个多边形完全包含在第二个多边形范围内:
=> SELECT ST_Within(ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'),
ST_GeomFromText('POLYGON((-1 3,2 1,0 -3,-1 3))'));
ST_Within
-----------
t
(1 row)
点位于多边形顶点之上但不在其内部:
=> SELECT ST_Within (ST_GeographyFromText('POINT(30 25)'),
ST_GeographyFromText('POLYGON((25 25,25 35,32.2 35,30 25,25 25))'));
ST_Within
-----------
f
(1 row)
两个多边形在空间上等效:
=> SELECT ST_Within (ST_GeomFromText('POLYGON((-1 2, 0 3, 0 1, -1 2))'),
ST_GeomFromText('POLYGON((0 3, -1 2, 0 1, 0 3))'));
ST_Within
-----------
t
(1 row)