Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_DFullyWithin

Última atualização: Sep 02, 2026

Retorna true se g2 estiver inteiramente dentro da distance de g1, ou seja, se todos os pontos de g2 estiverem contidos no buffer de distância ao redor de g1. Retorna false caso qualquer ponto de g2 esteja fora desse buffer.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Descrição

g1

geometry

Objeto de geometria de referência.

g2

geometry

Objeto de geometria a testar em relação a g1.

distance

double precision

Limiar de distância. O sistema de referência espacial (SRS) dos objetos de geometria define a unidade.

Notas de uso

  • Tanto g1 quanto g2 devem usar a mesma projeção e ter o mesmo identificador de referência espacial (SRID).

  • A função usa automaticamente comparações de bounding box e todos os índices disponíveis nos objetos de geometria para otimizar o desempenho.

ST_DFullyWithin vs. ST_DWithin

ST_DFullyWithin exige que todos os pontos de g2 estejam dentro da distance de g1. Já ST_DWithin requer apenas que as duas geometrias tenham pelo menos um ponto dentro da distance uma da outra. Portanto, ST_DFullyWithin é a mais restritiva das duas funções.

O exemplo a seguir aplica ambas as funções às mesmas geometrias com distance = 2:

SELECT
    ST_DFullyWithin(g1, g2, 2) AS dfullywithin2,
    ST_DWithin(g1, g2, 2)      AS dwithin2
FROM (
    VALUES (
        'LINESTRING(0 1,1 1)'::geometry,
        'LINESTRING(0 0,0 -1)'::geometry
    )
) AS t(g1, g2);

 dfullywithin2 | dwithin2
---------------+----------
 f             | t
(1 row)

Como g2 possui pontos que se estendem além do buffer de distância 2 de g1, ST_DFullyWithin retorna f. Por outro lado, os pontos mais próximos das duas line strings estão a uma distância menor que 2 entre si; assim, ST_DWithin retorna t.

Veja também

  • ST_DWithin — Testa se duas geometrias possuem algum ponto dentro de uma distância especificada uma da outra.