Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
Gäller för:
Databricks
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.
Anger den n:e punkten för indatalinjerna GEOGRAPHY eller GEOMETRY värdet.
Syntax
st_setpoint ( geo1Expr, indexExpr, geo2Expr )
Arguments
-
geo1Expr: EttGEOGRAPHYellerGEOMETRY-värde som representerar en linjedragning. -
indexExpr: EttINTEGERvärde som anger den 1-baserade positionen i den linje där den nya punkten ska anges. -
geo2Expr: EttGEOGRAPHYellerGEOMETRY-värde som representerar en punkt.
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
NULLom någon av indata ärNULL. - SRID-värdet för utdatalinjerna är lika med det gemensamma SRID-värdet för indata
GEOGRAPHYellerGEOMETRYvärden. - Dimensionen för utdata
GEOGRAPHYellerGEOMETRYlinjesträng är samma somgeo1Expr. Omgeo2Exprinnehåller koordinater vars dimension inte finns igeo1Exprmotsvarande koordinater anges till 0.
Feltillstånd
- Om
geo1Exprär av typenGEOGRAPHYochgeo2Exprär av typenGEOMETRY, eller tvärtom, returnerar funktionen DATATYPE_MISMATCH. - Om SRID-värdena för
geo1Exprochgeo2Exprskiljer sig åt returnerar funktionen ST_DIFFERENT_SRID_VALUES. - Funktionen returnerar ST_INVALID_ARGUMENT. INVALID_TYPE i något av följande fall:
- Värdet för
geo1Exprär inte en linjedragning. - Värdet för
geo2Exprär inte en punkt.
- Värdet för
- Funktionen returnerar ST_INVALID_ARGUMENT.EMPTY_LINESTRING om värdet
geo1Exprär en tom linestring. - Funktionen returnerar ST_INVALID_ARGUMENT. EMPTY_POINT om värdet
geo2Exprför är en tom punkt. - Om det absoluta värdet för värdet
indexExprför är 0 eller större än antalet punkter i linjedragningen returnerar funktionen ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
Examples
-- We set the first point of the linestring counting from the left.
> SELECT st_astext(st_setpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), 1, st_geomfromtext('POINT(7 8)')));
LINESTRING(7 8,3 4)
-- We set the first point of the linestring counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when we update the linestring.
> SELECT st_asewkt(st_setpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), -1, st_geogfromtext('POINT M (0 9 99)')));
SRID=4326;LINESTRING ZM (1 2 3 4,0 9 0 99)