fungsi st_pointonsurface

Berlaku untuk:check ditandai ya Databricks Runtime 18 LTS ke atas

Note

Databricks Runtime 18 lebih baru dari Databricks Runtime 18.0, 18.1, dan 18.2. Fitur yang sebelumnya telah dikirim sebagai versi bernomor yang lebih baru sekarang dikirim sebagai pembaruan tanggal ke Databricks Runtime 18 sebagai gantinya. Untuk detailnya, lihat Tentang catatan rilis terpadu.

Mengembalikan titik yang dijamin berada di atau di dalam nilai input GEOMETRY .

Syntax

st_pointonsurface ( geoExpr )

Argumen

  • geoExpr: Nilai GEOMETRY .

Returns

Nilai poin GEOMETRY 2D yang dijamin terletak pada atau di dalam nilai input GEOMETRY . Lebih tepatnya:

  • Jika nilai input GEOMETRY kosong, titik kosong 2D dikembalikan.
  • Jika nilai input GEOMETRY adalah titik tidak kosong, proyeksi 2D titik dikembalikan.
  • Jika nilai input GEOMETRY adalah linestring yang tidak kosong, puncak median dikembalikan.
  • Jika nilai input GEOMETRY adalah poligon yang tidak kosong, titik di interior poligon dikembalikan jika memungkinkan; jika tidak, titik pada batasnya.
  • Jika nilai input GEOMETRY adalah multipoint, titik tidak kosong yang paling dekat dengan pusat kotak pembatas dikembalikan.
  • Jika nilai input GEOMETRY adalah multilinestring, titik di permukaan linestring dengan panjang terbesar dikembalikan.
  • Jika nilai input GEOMETRY adalah multipoligon, titik di permukaan poligon dengan area terbesar dikembalikan.
  • Jika nilai input GEOMETRY adalah koleksi geometri, titik di permukaan salah satu elemen dimensi maksimum koleksi dikembalikan.

Nilai SRID dari nilai output GEOMETRY sama dengan nilai input.

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