[postgis-devel] [PostGIS] #652: ST_IsValid and adjacent polygons
PostGIS
trac at osgeo.org
Wed Oct 27 08:53:58 PDT 2010
#652: ST_IsValid and adjacent polygons
--------------------------------------------+-------------------------------
Reporter: gaosgeo | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 1.5.3
Component: postgis | Version: 1.5.X
Keywords: ST_IsValid, Self-Intersections |
--------------------------------------------+-------------------------------
Comment(by kneufeld):
What you are seeing is actually expected results.
According to the OGC specifications, a multipolygon is considered valid if
all its elements are valid and the interiors of no two elements intersect.
Additionally, the boundaries of any two elements *may* touch, but only at
a finite number of points (ie. a line). Granted, the ST_IsValidReason
could have been more clear by indicating a self-intersection along the
LINESTRING(0 1, 1 1), instead of only presenting a point along that line.
http://postgis.refractions.net/docs/ch04.html#OGC_Validity
or refer to the actual SFSS.
(I should probably add a new diagram (p) showing a valid mpg that touches
at a point)
As for your second example, ST_Valid does not take the 3rd (or 4th)
dimension into account. For the most part, calculations in PostGIS are
done in 2D. Some functions will recognize the 3rd dimension, like
ST_Length3D, others may extrapolate the value, but most will not use it,
including indexes. PostGIS should really be thought of as 2.5D where the
3rd/4th dimensions are really place holders for extra values. See the
support matrix:
http://postgis.refractions.net/docs/ch08.html#PostGIS_TypeFunctionMatrix
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/652#comment:2>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-devel
mailing list