Comparteix via


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

Agrega un nuevo punto en la posición n-ésima en la línea de coordenadas de entrada GEOGRAPHY o en el valor GEOMETRY.

Syntax

st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )

Arguments

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

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