Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 17.1 e superior
Important
O suporte para valores de GEOGRAFIA está disponível em Pré-visualização Pública. O suporte para valores GEOMETRY está geralmente disponível.
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.
Adiciona um novo ponto à n-ésima posição na sequência de linhas de entrada GEOGRAPHY ou GEOMETRY valor.
Syntax
st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )
Arguments
-
geo1Expr: UmGEOGRAPHYouGEOMETRYvalor que representa uma cadeia de caracteres de linha. -
geo2Expr: UmGEOGRAPHYouGEOMETRYvalor que representa um ponto. -
indexExpr: Um valor opcionalINTEGER, indicando uma posição baseada em 1 na cadeia de caracteres de linha onde o novo ponto deve ser adicionado. O valor padrão é -1.
Returns
Um valor de tipo GEOGRAPHY se ambos geo1Expr e geo2Expr são do tipo GEOGRAPHY, ou um valor de tipo GEOMETRY se ambos geo1Expr e geo2Expr são do tipo GEOMETRY.
Se indexExpr for positivo, o valor retornado GEOGRAPHY ou GEOMETRY é uma nova cadeia de caracteres de linha cujo indexExpr-ésimo ponto (contado a partir da esquerda) está definido como geo2Expr.
Se indexExpr for negativo, a posição baseada em 1 da linestring onde o ponto é adicionado é calculada a partir da direita.
- A função retorna
NULLse qualquer uma das entradas forNULL. - O valor SRID da linhastring de saída é igual ao valor SRID comum dos valores de entrada
GEOGRAPHYouGEOMETRY. - A dimensão da saída
GEOGRAPHYouGEOMETRYcadeia de caracteres de linha é a mesma que a degeo1Expr. Segeo2Exprcontiver coordenadas cuja dimensão não existe nasgeo1Exprcoordenadas correspondentes são definidas como 0.
Condições de erro
- Se
geo1Exprfor do tipoGEOGRAPHYegeo2Exprfor do tipoGEOMETRY, ou o contrário, a função retornará DATATYPE_MISMATCH. - Se os valores SRID de
geo1Expregeo2Exprdiferirem, a função retornará ST_DIFFERENT_SRID_VALUES. - A função retorna ST_INVALID_ARGUMENT. INVALID_TYPE em qualquer um dos seguintes casos:
- O valor de
geo1Exprnão é um linestring. - O valor de
geo2Exprnão é um ponto.
- O valor de
- A função retorna ST_INVALID_ARGUMENT. EMPTY_LINESTRING se o valor de for uma cadeia de caracteres de
geo1Exprlinha vazia. - A função retorna ST_INVALID_ARGUMENT. EMPTY_POINT se o valor de
geo2Expré um ponto vazio. - Se o valor absoluto de
indexExpré 0 ou maior do que o número de pontos na linha poligonal mais um, a função retorna ST_INVALID_ARGUMENT.INVALID_INDEX_VALUE.
Examples
-- We do not specify a position; the point is appended at the end (right) of the linestring.
> SELECT st_asewkt(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)', 4326), st_geomfromtext('POINT(7 8)', 4326)));
SRID=4326;LINESTRING(1 2,3 4,7 8)
-- A positive index indicates the position. We add the point at that position in the linestring.
> SELECT st_astext(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), st_geomfromtext('POINT(7 8)'), 3));
LINESTRING(1 2,3 4,7 8)
-- The position is specified as a negative index. The point is added at that position counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when the point is added in the linestring.
> SELECT st_asewkt(st_addpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), st_geogfromtext('POINT M (0 9 99)'), -1));
SRID=4326;LINESTRING ZM (1 2 3 4,5 6 7 8,0 9 0 99)