ST_PointOnSurface — ポリゴン内またはジオメトリ上にあるのが保証されたポイントを返します。
geometry ST_PointOnSurface(
geometry g1)
;
サーフェス (POLYGON、MULTIPOLYGON、CURVED POLYGON)内部にあることが保証されたPOINT
を返します。PostGISでは、この関数はラインジオメトリとポイントジオメトリ上でも動作します。
This method implements the OGC 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が定義されています。PostGISは、すべての一般的なジオメトリタイプに対応するよう拡張しています。他のデータベース (Oracle、DB2、ArcSDE)は、サーフェスに対してのみこの機能をサポートしているようです。SQL Server 2008では、すべての一般的なジオメトリタイプに対応しています。
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) SELECT ST_AsText(ST_PointOnSurface('LINESTRING(0 5, 0 10)'::geometry)); st_astext ------------ POINT(0 5) SELECT ST_AsText(ST_PointOnSurface('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'::geometry)); st_astext ---------------- POINT(2.5 2.5) SELECT ST_AsEWKT(ST_PointOnSurface(ST_GeomFromEWKT('LINESTRING(0 5 1, 0 0 1, 0 10 2)'))); st_asewkt ---------------- POINT(0 0 1)