st_addpoint-Funktion

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

Important

Unterstützung für GEOGRAFIE-Werte befindet sich in der öffentlichen Vorschau. Die Unterstützung für GEOMETRY-Werte ist allgemein verfügbar.

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)