- Categorias:
ST_HAUSDORFFDISTANCE¶
Retorna a distância Hausdorff discreta entre dois objetos GEOGRAPHY.
A distância Hausdorff indica o nível de semelhança entre os dois objetos. Dois objetos são considerados similares se cada ponto em um objeto estiver próximo a um ponto no outro objeto. A distância de Hausdorff é a maior distância entre um ponto em um objeto e um ponto no outro objeto.
ST_HAUSDORFFDISTANCE retorna a distância discreta de Hausdorff, que é calculada comparando apenas os vértices (pontos discretos) e não os pontos arbitrários ao longo da borda.
Sintaxe¶
ST_HAUSDORFFDISTANCE( <geography_expression_1> , <geography_expression_2> )
Argumentos¶
geography_expression_1
O argumento deve ser uma expressão do tipo GEOGRAPHY.
geography_expression_2
O argumento deve ser uma expressão do tipo GEOGRAPHY.
Retornos¶
Retorna um valor do tipo REAL que representa a distância discreta Hausdorff em graus.
Notas de uso¶
Retorna NULL se um ou mais pontos de entrada forem NULL.
Exemplos¶
Este exemplo retorna a distância Hausdorff entre dois pontos (ponto 0 0
e ponto 0 1
):
SELECT ST_HAUSDORFFDISTANCE(ST_POINT(0, 0), ST_POINT(0, 1)); +------------------------------------------------------+ | ST_HAUSDORFFDISTANCE(ST_POINT(0, 0), ST_POINT(0, 1)) | |------------------------------------------------------| | 1 | +------------------------------------------------------+
O exemplo seguinte compara três polígonos (a
, b
e c
).
A distância entre os pontos mais distantes em a
e c
(ponto 0 1
e ponto 0 3
) é maior do que a distância entre os pontos mais distantes em a
e b
(ponto 1 0
e ponto 2 0
).
Como resultado, o valor devolvido por ST_HAUSDORFFDISTANCE é menor para a
e c
. Isso indica que a
e c
são mais semelhantes que a
e b
.
WITH a AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 1, 1 0, 0 -1, -1 0))')), b AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 1, 2 0, 0 -1, -1 0))')), c AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 3, 1 0, 0 -1, -1 0))')) SELECT ST_HAUSDORFFDISTANCE(a, b) as distance_between_a_and_b, ST_HAUSDORFFDISTANCE(a, c) as distance_between_a_and_c; +--------------------------+--------------------------+ | DISTANCE_BETWEEN_A_AND_B | DISTANCE_BETWEEN_A_AND_C | |--------------------------+--------------------------| | 1 | 2 | +--------------------------+--------------------------+