funktion st_addpoint

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime 17.1 och senare

Important

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Anmärkning

Den här funktionen är inte tillgänglig på de klassiska Databricks SQL-lagerhus. Mer information om Databricks SQL-lager finns i SQL-lagertyper.

Lägger till en ny punkt till den n:e positionen i indatalinjesträngen GEOGRAPHY eller GEOMETRY värde.

Syntax

st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )

Arguments

  • geo1Expr: Ett GEOGRAPHY eller GEOMETRY -värde som representerar en linjedragning.
  • geo2Expr: Ett GEOGRAPHY eller GEOMETRY -värde som representerar en punkt.
  • indexExpr: Ett valfritt INTEGER värde som anger en 1-baserad position i den linje där den nya punkten ska läggas till. Standardvärdet är -1.

Returns

Ett värde av typen GEOGRAPHY om både geo1Expr och geo2Expr är av typen GEOGRAPHY, eller ett värde av typen GEOMETRY om båda geo1Expr och geo2Expr är av typen GEOMETRY. Om indexExpr är positivt är det returnerade GEOGRAPHY- eller GEOMETRY-värdet en ny linjesträng vars indexExpr:e punkt (räknat från vänster) är satt till geo2Expr. Om indexExpr är negativt mäts den 1-baserade positionen för den linjesträng där punkten läggs till från höger.

  • Funktionen returnerar NULL om någon av indata är NULL.
  • SRID-värdet för utdatalinjerna är lika med det gemensamma SRID-värdet för indata GEOGRAPHY eller GEOMETRY värden.
  • Dimensionen för utdata GEOGRAPHY eller GEOMETRY linjesträng är samma som geo1Expr. Om geo2Expr innehåller koordinater vars dimension inte finns i geo1Expr motsvarande koordinater anges till 0.

Feltillstånd

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)