Compartir vía


st_setpoint Función

Se aplica a:check marcado yes Databricks SQL check marcado yes Databricks Runtime 17.1 y versiones posteriores

Important

Esta característica está en versión preliminar pública.

Nota:

Esta característica no está disponible en almacenes clásicos de Databricks SQL. Para más información sobre los almacenes de SQL de Databricks, consulte Tipos de almacenamiento de SQL.

Establece el n-ésimo punto de la línea de entrada GEOGRAPHY o el valor GEOMETRY.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: un GEOGRAPHY valor o GEOMETRY que representa una cadena de líneas.
  • indexExpr: valor INTEGER que indica la posición basada en 1 en la cadena de líneas donde se debe establecer el nuevo punto.
  • geo2Expr: un GEOGRAPHY valor o GEOMETRY que representa un punto.

Returns

Valor de tipo GEOGRAPHY si y geo1Exprgeo2Expr son de tipo GEOGRAPHY, o un valor de tipo GEOMETRY si ambos geo1Expr y geo2Expr son de tipo GEOMETRY. Si indexExpr es positivo, el valor devuelto GEOGRAPHY o GEOMETRY es una nueva cadena de línea cuyo indexExprpunto -th (contado desde la izquierda) está establecido en geo2Expr. Si indexExpr es negativo, la posición basada en 1 de la línea donde se agrega el punto se mide desde la derecha.

  • La función devuelve NULL si alguna de las entradas es NULL.
  • El valor SRID de la línea de salida es igual al valor SRID común de los valores de entrada GEOGRAPHY o GEOMETRY.
  • La dimensión de la salida de GEOGRAPHY o GEOMETRY linestring es la misma que la de geo1Expr. Si geo2Expr contiene coordenadas cuya dimensión no existe en geo1Expr, las coordenadas correspondientes se establecen en 0.

Condiciones de error

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)