st_pointonsurface 関数

適用対象:はい Databricks Runtime 18 以上とマークされているチェック

入力 GEOMETRY 値の上または内側にあることが保証されるポイントを返します。

Syntax

st_pointonsurface ( geoExpr )

論争

  • geoExpr: GEOMETRYの値。

返品

2D ポイント GEOMETRY 、入力 GEOMETRY 値の上または内側にあることが保証される値です。 より正確には、次のようになります。

  • 入力 GEOMETRY 値が空の場合は、2D 空のポイントが返されます。
  • 入力 GEOMETRY 値が空でないポイントの場合は、ポイントの 2D 投影が返されます。
  • 入力 GEOMETRY 値が空でないラインストリングの場合は、中央値の頂点が返されます。
  • 入力 GEOMETRY 値が空でない多角形の場合は、可能な場合はポリゴンの内部のポイントが返されます。それ以外の場合は、その境界上のポイントが返されます。
  • 入力 GEOMETRY 値がマルチポイントの場合は、境界ボックスの中心に最も近い空でないポイントが返されます。
  • 入力 GEOMETRY 値が複数行文字列の場合は、長さが最も大きい行文字列のサーフェス上のポイントが返されます。
  • 入力 GEOMETRY 値がマルチポリゴンの場合は、面積が最も大きいポリゴンのサーフェス上のポイントが返されます。
  • 入力 GEOMETRY 値がジオメトリ コレクションの場合、コレクションの最大次元要素の 1 つのサーフェス上のポイントが返されます。

出力 GEOMETRY 値の SRID 値は、入力値と同じです。

例示

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