Name

ST_PointOnSurface — サーフェス上にあることを保障されたPOINTを返します。

Synopsis

geometry ST_PointOnSurface(geometry g1);

説明

サーフェス上にあることを保障されたPOINTを返します。

This method implements the OpenGIS Simple Features Implementation Specification for SQL 1.1. s3.2.14.2 // s3.2.18.2

This method implements the SQL/MM specification. SQL-MM 3: 8.1.5, 9.5.6. 仕様によると、ST_PointOnSurfaceは面ジオメトリ (POLYGON, MULTIPOLYGON, 曲線ポリゴン)で動作します。PostGISは、仕様で許される以上に拡張しているように見えます。Oracle, DB II, ESRI SDEといったほとんどのデータベースでは、面ジオメトリにのみ対応しているように見えます。SQL Server 2008は、PostGISのように全ての一般的なジオメトリに対応しています。

This function supports 3d and will not drop the z-index.

SELECT ST_AsText(ST_PointOnSurface('POINT(0 5)'::geometry));
 st_astext
------------
 POINT(0 5)
(1 row)

SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry));
 st_astext
------------
 POINT(0 5)
(1 row)

SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::geometry));
   st_astext
----------------
 POINT(2.5 2.5)
(1 row)

SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 10 2)')));
   st_asewkt
----------------
 POINT(0 0 1)
(1 row)

関連情報

ST_Centroid, ST_PointInsideCircle