Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Se aplica a:
Databricks SQL
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: unGEOGRAPHYvalor oGEOMETRYque representa una cadena de líneas. -
geo2Expr: unGEOGRAPHYvalor oGEOMETRYque representa un punto. -
indexExpr: valor opcionalINTEGER, 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
NULLsi alguna de las entradas esNULL. - El valor SRID de la línea de salida es igual al valor SRID común de los valores de entrada
GEOGRAPHYoGEOMETRY. - La dimensión de la salida de
GEOGRAPHYoGEOMETRYlinestring es la misma que la degeo1Expr. Sigeo2Exprcontiene coordenadas cuya dimensión no existe engeo1Expr, las coordenadas correspondientes se establecen en 0.
Condiciones de error
- Si
geo1Expres de tipoGEOGRAPHYygeo2Expres de tipoGEOMETRY, o de otro modo, la función devuelve DATATYPE_MISMATCH. - Si los valores SRID de
geo1Exprygeo2Exprdifieren, la función devuelve ST_DIFFERENT_SRID_VALUES. - La función devuelve ST_INVALID_ARGUMENT. INVALID_TYPE en cualquiera de los casos siguientes:
- El valor de
geo1Exprno es una cadena de línea. - El valor de
geo2Exprno es un punto.
- El valor de
- La función devuelve ST_INVALID_ARGUMENT. EMPTY_LINESTRING si el valor de
geo1Expres una cadena de línea vacía. - La función devuelve ST_INVALID_ARGUMENT. EMPTY_POINT si el valor de
geo2Expres un punto vacío. - Si el valor absoluto del valor de
indexExpres 0 o mayor que el número de puntos de la cadena de líneas más uno, la función devuelve 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)