Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 17.1 and above
Important
Esse recurso está em Visualização Pública.
Observação
Esse recurso não está disponível em databricks SQL Classic warehouses. Para saber mais sobre os sql warehouses do Databricks, consulte os tipos de sql warehouse.
Adiciona um novo ponto na enésima posição do linestring de entrada GEOGRAPHY ou valor GEOMETRY.
Syntax
st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )
Arguments
-
geo1Expr: AGEOGRAPHYouGEOMETRYvalor que representa uma linha de linha. -
geo2Expr: AGEOGRAPHYouGEOMETRYvalor que representa um ponto. -
indexExpr: um valor opcionalINTEGER, indicando uma posição baseada em 1 na linha de caracteres em que 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 será um novo 'linestring' cujo indexExpr-ésimo ponto (contado a partir da esquerda) é definido como geo2Expr.
Se indexExpr for negativo, a posição baseada em 1 da linhagem em que o ponto é adicionado é medida da direita.
- A função retornará
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
GEOGRAPHYouGEOMETRYlinestring é a mesma degeo1Expr. Segeo2Exprcontiver coordenadas cuja dimensão não existe nasgeo1Exprcoordenadas correspondentes, serã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 forem
geo1Exprdiferentes egeo2Exprforem diferentes, 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
geo1Exprfor uma linha vazia. - A função retorna ST_INVALID_ARGUMENT.EMPTY_POINT se o valor de
geo2Exprfor um ponto vazio. - Se o valor absoluto do valor de
indexExprfor 0 ou maior que o número de pontos no linestring mais um, a função retornará 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)