名称

ST_DFullyWithin — 测试一个几何图形是否完全在另一个几何图形的距离范围内

概要

boolean ST_DFullyWithin(geometry g1, geometry g2, double precision distance);

描述

如果 g2 完全在 g1distance 距离范围内,则返回 true。 从视觉上看,如果 g2 包含在 g1distance 缓冲区内,则条件为真。距离以几何图形的空间参考系统定义的单位指定。

[Note]

此函数自动包含边界框比较,该比较利用几何图形上可用的任何空间索引。

可用性: 1.5.0

变更: 3.5.0: 该函数背后的逻辑现在使用缓冲区内的包含测试,而不是 ST_MaxDistance 算法。结果将与以前的版本不同,但应该更接近用户的期望。

示例

SELECT
    ST_DFullyWithin(geom_a, geom_b, 10) AS DFullyWithin10,
    ST_DWithin(geom_a, geom_b, 10) AS DWithin10,
    ST_DFullyWithin(geom_a, geom_b, 20) AS DFullyWithin20
FROM (VALUES
    ('POINT(1 1)', 'LINESTRING(1 5, 2 7, 1 9, 14 12)')
    ) AS v(geom_a, geom_b)

 dfullywithin10 | dwithin10 | dfullywithin20
----------------+-----------+----------------
 f              | t         | t