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 |
|
|
geometry |
Objeto de geometria de referência. |
|
|
geometry |
Objeto de geometria a testar em relação a |
|
|
double precision |
Limiar de distância. O sistema de referência espacial (SRS) dos objetos de geometria define a unidade. |
Notas de uso
Tanto
g1quantog2devem 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.