Compartilhar via


st_setpoint Função

Aplica-se a:check marked yes Databricks SQL check marked yes 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.

Define o n-ésimo ponto da linhastring GEOGRAPHY de entrada ou valor GEOMETRY.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: A GEOGRAPHY ou GEOMETRY valor que representa uma linha de linha.
  • indexExpr: um INTEGER valor que indica a posição baseada em 1 na linha onde o novo ponto deve ser definido.
  • geo2Expr: A GEOGRAPHY ou GEOMETRY valor que representa um ponto.

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á 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 linestring é a mesma de geo1Expr. Se geo2Expr contiver coordenadas cuja dimensão não existe nas geo1Expr coordenadas correspondentes, serão definidas como 0.

Condições de erro

Examples

-- We set the first point of the linestring counting from the left.
> SELECT st_astext(st_setpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), 1, st_geomfromtext('POINT(7 8)')));
  LINESTRING(7 8,3 4)

-- We set the first point of the linestring counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when we update the linestring.
> SELECT st_asewkt(st_setpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), -1, st_geogfromtext('POINT M (0 9 99)')));
  SRID=4326;LINESTRING ZM (1 2 3 4,0 9 0 99)