[postgis-tickets] [SCM] PostGIS branch master updated. 3.3.0rc2-1172-g37b3c90b5

git at osgeo.org git at osgeo.org
Thu Jul 6 14:52:34 PDT 2023


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".

The branch, master has been updated
       via  37b3c90b52ae06ca94204ed1cb0e75f675eaa830 (commit)
      from  6770b653e62789c56053b575f27d5eeca6bced44 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 37b3c90b52ae06ca94204ed1cb0e75f675eaa830
Author: Martin Davis <mtnclimb at gmail.com>
Date:   Thu Jul 6 14:52:33 2023 -0700

    Add doc math definitions for relations

diff --git a/doc/reference_relationship.xml b/doc/reference_relationship.xml
index b496161da..d26c9ad3d 100644
--- a/doc/reference_relationship.xml
+++ b/doc/reference_relationship.xml
@@ -431,6 +431,9 @@ ST_Point      | t          | t              | f           | f
         Equivalently, tests that no point of A lies outside (in the exterior of) B.
         </para>
 
+    <para>In mathematical terms:
+    <emphasis>ST_CoveredBy(A, B) ⇔ A ⋂ B = A </emphasis></para>
+
     <para>ST_CoveredBy is the converse of <xref linkend="ST_Covers"/>.
     So, <code>ST_CoveredBy(A,B) = ST_Covers(B,A)</code>.</para>
 
@@ -519,6 +522,9 @@ FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc,
             Equivalently, tests that no point of B lies outside (in the exterior of) A.
             </para>
 
+    <para>In mathematical terms:
+    <emphasis>ST_Covers(A, B) ⇔ A ⋂ B = B </emphasis></para>
+
     <para>ST_Covers is the converse of <xref linkend="ST_CoveredBy"/>.
     So, <code>ST_Covers(A,B) = ST_CoveredBy(B,A)</code>.</para>
 
@@ -615,10 +621,11 @@ SELECT ST_Covers(geog_poly, geog_pt) As poly_covers_pt,
     and must have dimension less than the maximum dimension
     of the two input geometries, and the intersection of the two
     geometries must not equal either geometry. Otherwise, it
-    returns <varname>false</varname>.</para>
+    returns <varname>false</varname>.
+    The crosses relation is symmetric and irreflexive.</para>
 
     <para>In mathematical terms:
-    <emphasis>ST_Crosses(A, B) ⇔ (dim( Int(A) ⋂ Int(B) ) < max( dim( Int(A) ), dim( Int(B) ) )) ∧ (a ⋂ b ≠ a) ∧ (a ⋂ b ≠ b) </emphasis></para>
+    <emphasis>ST_Crosses(A, B) ⇔ (dim( Int(A) ⋂ Int(B) ) < max( dim( Int(A) ), dim( Int(B) ) )) ∧ (A ⋂ B ≠ A) ∧ (A ⋂ B ≠ B) </emphasis></para>
 
     <para>Geometries cross if their DE-9IM Intersection Matrix matches:</para>
 
@@ -776,9 +783,17 @@ WHERE ST_Crosses(roads.geom, highways.geom);</programlisting>
     </refsynopsisdiv>
     <refsection>
       <title>Description</title>
-      <para>Overlaps, Touches, Within all imply geometries are not spatially disjoint.  If any of the aforementioned
-        returns true, then the geometries are not spatially disjoint.
-        Disjoint implies false for spatial intersection.</para>
+
+      <para>Returns <varname>true</varname> if two geometries are disjoint.
+      Geometries are disjoint if they have no point in common.
+      </para>      
+      
+      <para>If any other spatial relationship is true for a pair of geometries, they are not disjoint.
+      Disjoint implies that <xref linkend="ST_Intersects"/> is false.
+      </para>
+
+    <para>In mathematical terms:
+    <emphasis>ST_Disjoint(A, B) ⇔ A ⋂ B = ∅ </emphasis></para>
 
     <important>
       <para role="enhanced" conformance="3.0.0">Enhanced: 3.0.0 enabled support for <varname>GEOMETRYCOLLECTION</varname></para>
@@ -841,14 +856,21 @@ SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry);
     <refsection>
     <title>Description</title>
 
-    <para>Returns <varname>true</varname> if the given geometries are "spatially
-      equal". Use this for a 'better' answer than '='.
-      Note by spatially equal we mean ST_Within(A,B) = true and ST_Within(B,A) = true and
-      also mean ordering of points can be different but
-      represent the same geometry structure.  To verify the order of points is consistent, use
-      ST_OrderingEquals (it must be noted ST_OrderingEquals is a little more stringent than simply verifying order of
+    <para>Returns <varname>true</varname> if the given geometries are "topologically equal". 
+    Use this for a 'better' answer than '='.
+      Topological equality means that the geometries have the same dimension, 
+      and their point-sets occupy the same space.
+      This means that the order of vertices may be different in topologically equal geometries. 
+      To verify the order of points is consistent use
+      <xref linkend="ST_OrderingEquals"/> (it must be noted ST_OrderingEquals is a little more stringent than simply verifying order of
       points are the same).</para>
 
+    <para>In mathematical terms:
+    <emphasis>ST_Equals(A, B) ⇔ A = B </emphasis></para>
+
+    <para>The following relation holds:
+    <emphasis>ST_Equals(A, B) ⇔ ST_Within(A,B) ∧ ST_Within(B,A) </emphasis></para>
+
     <important>
       <para role="enhanced" conformance="3.0.0">Enhanced: 3.0.0 enabled support for <varname>GEOMETRYCOLLECTION</varname></para>
     </important>
@@ -920,7 +942,7 @@ SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),
     </refsynopsisdiv>
     <refsection>
       <title>Description</title>
-      <para>Compares two geometries and returns <varname>true</varname> if they intersect.
+      <para>Returns <varname>true</varname> if two geometries intersect.
       Geometries intersect if they have any point in common.
       </para>
 
@@ -928,6 +950,9 @@ SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),
       For geography, a distance tolerance of 0.00001 meters is used
       (so points that are very close are considered to intersect).</para>
 
+    <para>In mathematical terms:
+    <emphasis>ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅ </emphasis></para>
+
     <para>Geometries intersect if their DE-9IM Intersection Matrix matches one of:
     </para>
 
@@ -1236,9 +1261,12 @@ SELECT ST_OrderingEquals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),
     their interiors intersect in that dimension.
     and each has at least one point inside the other
     (or equivalently, neither one covers the other).
-    The overlaps relationship is symmetric and irreflexive.
+    The overlaps relation is symmetric and irreflexive.
     </para>
 
+    <para>In mathematical terms:
+    <emphasis>ST_Overlaps(A, B) ⇔ ( dim(A) = dim(B) = dim( Int(A) ⋂ Int(B) )) ∧ (A ⋂ B ≠ A) ∧ (A ⋂ B ≠ B) </emphasis></para>
+
     <note><para>&index_aware;
         To avoid index use, use the function <function>_ST_Overlaps</function>.</para></note>
 
@@ -1686,7 +1714,7 @@ SELECT pat.name AS relationship, pat.val AS pattern,
     since points do not have a boundary.</para>
 
     <para>In mathematical terms:
-    <emphasis>ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) ≠ ∅) ∧ (a ⋂ b ≠ ∅) </emphasis></para>
+    <emphasis>ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) ≠ ∅) ∧ (A ⋂ B ≠ ∅) </emphasis></para>
 
     <para>This relationship holds if the DE-9IM Intersection Matrix for the two geometries matches one of:</para>
 
@@ -1836,8 +1864,12 @@ SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::geometry)
     sense, the source geometries must both be of the same coordinate projection,
     having the same SRID.
     </para>
-    <para>The within relationship is reflexive: every geometry is within itself.
-    The relationship is antisymmetric: if <code>ST_Within(A,B) = true</code> and <code>ST_Within(B,A) = true</code>, then
+
+    <para>In mathematical terms:
+    <emphasis>ST_Within(A, B) ⇔ (A ⋂ B = A) ∧ (Int(A) ⋂ Int(B) ≠ ∅) </emphasis></para>
+
+    <para>The within relation is reflexive: every geometry is within itself.
+    The relation is antisymmetric: if <code>ST_Within(A,B) = true</code> and <code>ST_Within(B,A) = true</code>, then
     the two geometries must be topologically equal (<code>ST_Equals(A,B) = true</code>).</para>
 
     <para>ST_Within is the converse of <xref linkend="ST_Contains"/>.

-----------------------------------------------------------------------

Summary of changes:
 doc/reference_relationship.xml | 64 +++++++++++++++++++++++++++++++-----------
 1 file changed, 48 insertions(+), 16 deletions(-)


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list