ST_CONTAINS函数用来判断value1对应的地理对象是否包含value2对应的地理对象。
命令格式
BOOLEAN ST_CONTAINS(GEOGRAPHY <value1>, GEOGRAPHY <value2>)参数说明
value1、value2:必填。GEOGRAPHY数据类型的地理对象。可根据需求使用ST_GEOGPOINT、ST_GEOGFROMWKB、ST_GEOGFROMTEXT、ST_MAKELINE和ST_MAKEPOLYGON函数来构造GEOGRAPHY类型对象。
返回值说明
返回BOOLEAN类型。返回规则如下:
若value2所对应的地理对象的每一个点都被包含到value1所对应的地理对象中,则返回TRUE;否则返回FALSE。
若value1或value2为空的地理对象,则返回FALSE。
一个地理对象是不包含它的边界节点的。
使用示例
判断多边形 POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))是否分别包含位于多边形外部、边界和内部的三个点 (20, 20)、(0, 0) 和 (5, 5)。
-- 返回TRUE,因为POINT(5 5)在POLYGON内部
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(5 5)'));
-- 返回FALSE,因为POINT(20 20)在POLYGON外部
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(20 20)'));
-- 返回FALSE,因为POINT(0 0)在POLYGON边界上
SELECT ST_CONTAINS(ST_GEOGFROMTEXT('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'), ST_GEOGFROMTEXT('POINT(0 0)'));相关文档
该文章对您有帮助吗?