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.
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)