ST_PointOnSurface
Name
ST_PointOnSurface — Computes a point guaranteed to lie in a polygon, or on a geometry.
Synopsis
geometry
ST_PointOnSurface
(
geometry
g1
)
;
Description
Returns a
POINT
which is guaranteed to lie in the interior of a surface
(POLYGON, MULTIPOLYGON, and CURVED POLYGON).
In PostGIS this function also works on line and point geometries.
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. The specifications define ST_PointOnSurface for surface geometries only. PostGIS extends the function to support all common geometry types. Other databases (Oracle, DB2, ArcSDE) seem to support this function only for surfaces. SQL Server 2008 supports all common geometry types.
This function supports 3d and will not drop the z-index.
Examples
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)