st_pointonsurface functie

Van toepassing op:controleren gemarkeerd als Ja Databricks Runtime 18 LTS en hoger

Note

Databricks Runtime 18 is nieuwer dan Databricks Runtime 18.0, 18.1 en 18.2. Functies die eerder als een latere genummerde versie werden verzonden, worden nu verzonden als gedateerde updates voor Databricks Runtime 18. Zie Voor meer informatie over geïntegreerde releaseopmerkingen.

Retourneert een punt dat gegarandeerd op of binnen de invoerwaarde GEOMETRY ligt.

Syntax

st_pointonsurface ( geoExpr )

Arguments

  • geoExpr: Een GEOMETRY waarde.

Returns

Een 2D-puntwaarde GEOMETRY die gegarandeerd op of binnen de invoerwaarde GEOMETRY ligt. Preciezer gezegd:

  • Als de invoerwaarde GEOMETRY leeg is, wordt het lege 2D-punt geretourneerd.
  • Als de invoerwaarde GEOMETRY een niet-leeg punt is, wordt de 2D-projectie van het punt geretourneerd.
  • Als de invoerwaarde GEOMETRY een niet-lege lijnentring is, wordt het mediaan hoekpunt geretourneerd.
  • Als de invoerwaarde GEOMETRY een niet-lege veelhoek is, wordt indien mogelijk een punt in het binnenste van de veelhoek geretourneerd; anders een punt op de grens.
  • Als de invoerwaarde GEOMETRY een multipoint is, wordt het niet-lege punt dat het dichtst bij het begrenzingsvakcentrum ligt, geretourneerd.
  • Als de invoerwaarde GEOMETRY een multilinestring is, wordt een punt op het oppervlak van de lijnentring met de grootste lengte geretourneerd.
  • Als de invoerwaarde GEOMETRY een multipolygon is, wordt een punt op het oppervlak van de veelhoek met het grootste gebied geretourneerd.
  • Als de invoerwaarde GEOMETRY een geometrieverzameling is, wordt een punt op het oppervlak van een van de maximumdimensionale elementen van de verzameling geretourneerd.

De SRID-waarde van de uitvoerwaarde GEOMETRY is hetzelfde als die van de invoerwaarde.

Examples

-- 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