Sdílet prostřednictvím


st_addpoint Funkce

Platí pro:check označený jako ano Kontrola SQL Databricks označená jako ano Databricks Runtime 17.1 a vyšší

Important

Tato funkce je ve verzi Public Preview.

Poznámka:

Tato funkce není k dispozici ve skladech Databricks SQL Classic. Další informace o službě Databricks SQL Warehouse najdete v tématu Typy SQL Warehouse.

Přidá nový bod na n-tou pozici ve vstupním liniovém řetězci GEOGRAPHY nebo GEOMETRY hodnotě.

Syntax

st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )

Arguments

  • geo1Expr: Hodnota typu GEOGRAPHY nebo GEOMETRY představující liniový řetězec.
  • geo2Expr: Hodnota GEOGRAPHY nebo GEOMETRY představující bod.
  • indexExpr: Volitelná INTEGER hodnota označující pozici v polylinii, založenou na číslování začínajícím od 1, kde má být přidán nový bod. Výchozí hodnota je -1.

Returns

Hodnota typu GEOGRAPHY , pokud jsou oba geo1Expr a geo2Expr jsou typu GEOGRAPHY, nebo hodnota typu GEOMETRY , pokud oba geo1Expr a geo2Expr jsou typu GEOMETRY. Pokud indexExpr je kladný, vrácená GEOGRAPHY nebo GEOMETRY hodnota je nový linestring, jehož indexExpr-tý bod (počítáno od začátku) je nastaven na geo2Expr. Pokud je indexExpr záporné, pozice 1 založená na umístění liniového objektu, kde se bod přidá, se měří zprava.

  • Funkce vrátí NULL , pokud je některý ze vstupů NULL.
  • Hodnota SRID výstupního řetězce řádku se rovná společné hodnotě SRID vstupu GEOGRAPHY nebo GEOMETRY hodnot.
  • Dimenze výstupního GEOGRAPHY nebo GEOMETRY spojnicového řetězce je stejná jako hodnota geo1Expr. Pokud geo2Expr obsahuje souřadnice, jejichž rozměr neexistuje v geo1Expr odpovídajících souřadnicích, jsou nastaveny na hodnotu 0.

Chybové podmínky

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)