Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 17.1 e superior
Observação
Esse recurso não está disponível nos armazéns Databricks SQL Classic. Para saber mais sobre os armazéns SQL do Databricks, consulte Tipos de armazém SQL.
Retorna o casco côncavo do valor de entrada GEOMETRY como um GEOMETRY valor usando a razão de comprimento especificada.
Syntax
st_concavehull ( geoExpr, lengthRatioExpr[, allowHolesExpr])
Arguments
-
geoExpr: UmGEOMETRYvalor. -
lengthRatio- UmDOUBLEvalor entre0e1, inclusive, que representa a razão de comprimento utilizada para calcular o casco côncavo. -
allowHoles- Um valor opcionalBOOLEAN, indicando se a geometria de saída, se um polígono, pode ter furos. O valor predefinido é false.
Returns
Retorna um GEOMETRY valor que é o casco côncavo do valor de entrada GEOMETRY usando a razão de comprimento especificada. A geometria resultante, se um polígono, pode ter furos se o terceiro argumento for definido como verdadeiro.
O valor SRID do valor de saída GEOMETRY é igual ao valor de entrada GEOMETRY .
Um erro será retornado se a proporção de comprimento não estiver entre 0 e 1, inclusive.
A razão de comprimento determina um limite com base no intervalo entre as arestas mais curtas e mais longas na triangulação de Delaunay dos pontos de entrada. Arestas maiores que esse parâmetro são removidas da triangulação. Os triângulos restantes definem o casco côncavo.
Para geometrias de entrada de área (polígonos ou multipolígonos), o algoritmo utiliza uma triangulação de Delaunay condicionada. O casco côncavo resultante respeita o valor de entrada GEOMETRY e inclui seus polígonos originais.
Examples
> SELECT st_astext(st_concavehull(st_geomfromtext('MULTIPOINT(0 0,10 0,10 10,0 10,1 1,1 5,1 9,5 1,9 9,9 1,9 5,5 9)'), 1));
POLYGON((0 0,0 10,10 10,10 0,0 0))
> SELECT st_astext(st_concavehull(st_geomfromtext('MULTIPOINT(0 0,10 0,10 10,0 10,1 1,1 5,1 9,5 1,9 9,9 1,9 5,5 9)'), 0.8));
POLYGON((0 0,1 5,0 10,5 9,10 10,9 5,10 0,5 1,0 0))