Partilhar via


st_addpoint Função

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 17.1 e superior

Important

Este recurso está no Public Preview.

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: Um GEOGRAPHY ou GEOMETRY valor que representa uma cadeia de caracteres de linha.
  • geo2Expr: Um GEOGRAPHY ou GEOMETRY valor que representa um ponto.
  • indexExpr: Um valor opcional INTEGER , 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 NULL se qualquer uma das entradas for NULL.
  • O valor SRID da linhastring de saída é igual ao valor SRID comum dos valores de entrada GEOGRAPHY ou GEOMETRY.
  • A dimensão da saída GEOGRAPHY ou GEOMETRY cadeia de caracteres de linha é a mesma que a de geo1Expr. Se geo2Expr contiver coordenadas cuja dimensão não existe nas geo1Expr coordenadas correspondentes são definidas como 0.

Condições de erro

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)