]
Steven Hawkins resolved TEIID-4580.
-----------------------------------
Fix Version/s: 9.2
9.1.2
Resolution: Done
Thanks Andrej. Yes, the postgis docs did not make that clear. It's only supposed to
return the boundary is an interior point can't be calculated.
ST_PointOnSurface returns point on the boundary of the polygon
--------------------------------------------------------------
Key: TEIID-4580
URL:
https://issues.jboss.org/browse/TEIID-4580
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 9.x, 8.12.7.6_3
Reporter: Andrej Šmigala
Assignee: Steven Hawkins
Fix For: 9.2, 9.1.2
Calling ST_PointOnSurface with a polygon argument returns one of the points of the
polygon boundary.
E.g.
{code:sql}
SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText('POLYGON ((67 13, 67 18, 59 18, 59
13, 67 13))')));
{code}
returns {{POINT (67 13)}}
The spec says
bq. PointOnSurface( ):Point—A point guaranteed to be on this Surface.
which might not be completely clear, but
[
several|http://gis.stackexchange.com/questions/76498/how-is-st-pointonsur...]
[
sources|http://workshops.boundlessgeo.com/postgis-intro/geometry_returnin...] indicate
that "on this surface" means _inside_ the surface.
When running the same query against a postgis instance (not through teiid), the result is
{{POINT(63 15.5)}}, which is actually inside the polygon.