Freigeben über


st_addpoint-Funktion

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 17.1 and above

Important

Dieses Feature befindet sich in der Public Preview.

Hinweis

Dieses Feature ist in Databricks SQL Classic Warehouses nicht verfügbar. Weitere Informationen zu Databricks SQL Warehouses finden Sie unter SQL Warehouse-Typen.

Fügt einen neuen Punkt an der n-ten Position in der Eingabezeilenzeichenfolge GEOGRAPHY oder GEOMETRY hinzu.

Syntax

st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )

Arguments

  • geo1Expr: Ein GEOGRAPHY- oder GEOMETRY-Wert, der einen Linienzug darstellt.
  • geo2Expr: Ein GEOGRAPHY oder GEOMETRY ein Wert, der einen Punkt darstellt.
  • indexExpr: Ein optionaler INTEGER Wert, der eine 1-basierte Position in der Linienzeichenfolge angibt, an der der neue Punkt hinzugefügt werden soll. Der Standardwert ist -1.

Returns

Ein Wert vom Typ GEOGRAPHY , wenn beide geo1Expr und geo2Expr vom Typ GEOGRAPHYsind, oder ein Wert des Typs GEOMETRY , wenn beide geo1Expr und geo2Expr vom Typ GEOMETRYsind. Wenn indexExpr positiv ist, handelt es sich bei dem zurückgegebenen GEOGRAPHY oder GEOMETRY-Wert um einen neuen Linienzug, dessen indexExpr-ter Punkt (von links gezählt) auf geo2Expr gesetzt ist. Wenn indexExpr negativ ist, wird die Position des Linienstrings basierend auf 1, an der der Punkt hinzugefügt wird, von rechts gemessen.

  • Die Funktion gibt zurück NULL , wenn eine der Eingaben lautet NULL.
  • Der SRID-Wert des Ausgabe-Linestrings entspricht dem gemeinsamen SRID-Wert der Eingabewerte GEOGRAPHY oder GEOMETRY.
  • Die Dimension der Ausgabe GEOGRAPHY - oder GEOMETRY Linienzeichenfolge ist identisch mit der der von geo1Expr. If geo2Expr enthält Koordinaten, deren Dimension in der Datenbank nicht vorhanden ist. geo1Expr werden die entsprechenden Koordinaten auf 0 aktiviert.

Fehlerbedingungen

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)