funktion st_pointonsurface

Gäller för:check markerat ja Databricks Runtime 18 LTS och senare

Note

Databricks Runtime 18 är nyare än Databricks Runtime 18.0, 18.1 och 18.2. Funktioner som tidigare skulle ha levererats som en senare numrerad version levereras nu som daterade uppdateringar till Databricks Runtime 18 i stället. Mer information finns i Om enhetliga viktig information.

Returnerar en punkt som garanterat ligger på eller inuti indatavärdet GEOMETRY .

Syntax

st_pointonsurface ( geoExpr )

Arguments

  • geoExpr: Ett GEOMETRY värde.

Returns

Ett 2D-punktsvärde GEOMETRY som garanterat ligger på eller inuti indatavärdet GEOMETRY . Mer exakt:

  • Om indatavärdet GEOMETRY är tomt returneras den tomma 2D-punkten.
  • Om indatavärdet GEOMETRY är en icke-tom punkt returneras 2D-projektionen för punkten.
  • Om indatavärdet GEOMETRY är en icke-tom linjering returneras medianhörnet.
  • Om indatavärdet GEOMETRY är en icke-tom polygon returneras en punkt i polygonens inre när det är möjligt, annars en punkt på dess gräns.
  • Om indatavärdet GEOMETRY är en multipunkt returneras den icke-tomma punkt som är närmast avgränsningsrutans mittpunkt.
  • Om indatavärdet GEOMETRY är en multilinestring returneras en punkt på ytan av linjerna med den största längden.
  • Om indatavärdet GEOMETRY är en multipolygon returneras en punkt på ytan av polygonen med det största området.
  • Om indatavärdet GEOMETRY är en geometrisamling returneras en punkt på ytan för ett av samlingens maximalt dimensionella element.

SRID-värdet för utdatavärdet GEOMETRY är detsamma som för indatavärdet.

Exempel

-- Example taking a 2D polygon.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))')));
  POINT(5 5)

-- Example taking a 2D polygon with a hole: the result lies in the donut region.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,30 0,30 30,0 30,0 0),(5 5,25 5,25 25,5 25,5 5))')));
  POINT(3.75 3.75)

-- Example taking a 3DZ linestring: the median vertex is returned and the Z coordinate is dropped.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('LINESTRING Z (1 2 -1,3 4 -2,5 6 -3)')));
  POINT(3 4)

-- Example taking a multipolygon: a point on the polygon with the largest area is returned.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((100 100,101 100,101 101,100 101,100 100)))')));
  POINT(5 5)

-- Example showing that the SRID is preserved.
> SELECT st_asewkt(st_pointonsurface(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))', 3857)));
  SRID=3857;POINT(5 5)

-- Example taking a NULL input.
> SELECT st_pointonsurface(NULL);
  NULL