@@ -171,10 +171,10 @@ The IM for the two disjoint geometries of dimensions .two and .one, in that orde
The IM for a Polygon and a LineString (not LinearRing), in that order, that do intersect is
I ∩ I = 1, if at least one line segment of the LineString enters the interior of the Polygon, else .false (Note this value cannot be 0.)
I ∩ B = 0, if the interior of one line segment of the LineString is inside the polygon, else .false
I ∩ B = 0, if the interior of one line segment of the LineString is inside the Polygon, else .false
I ∩ E = 2
B ∩ I = 1, if one line segment of the boundary of the Polygon overlaps one line segment from the LineString, else 0, if the interior of the LineString touches the Polygon at most at a set of points, else .false
B ∩ B = 0, if the endpoints of the LineString touch the line segments of the boundary at one or more points, else .false
B ∩ B = 0, if the endpoints of the LineString touch the line segments of the boundary of the Polygon at one or more points, else .false
B ∩ E = 1
E ∩ I = 1, if part of one line segment of the LineString lies outside of the Polygon, else .false (Note this value cannot be 0.)
E ∩ B = 0, if at least one endpoint of the LineString lies outside of the Polygon, else .false
...
...
@@ -205,6 +205,18 @@ E ∩ B = 0, if at least one endpoint of the MultilineString lies outside of the
E ∩ E = 2
If the order of the two geometries is reversed, the intersection matrix would be the transpose of the above.
The IM for a MultiPolygon and a LineString (not LinearRing), in that order, that do intersect is
I ∩ I = 1, if at least one line segment of the LineString enters the interior of the MultiPolygon, else .false (Note this value cannot be 0.)
I ∩ B = 0, if the interior of one line segment of the LineString is inside the MultiPolygon, else .false
I ∩ E = 2
B ∩ I = 1, if one line segment of the boundary of the MultiPolygon overlaps one line segment from the LineString, else 0, if the interior of the LineString touches the MultiPolygon at most at a set of points, else .false
B ∩ B = 0, if the endpoints of the LineString touch the line segments of the boundary of the MultiPolygon at one or more points, else .false
B ∩ E = 1
E ∩ I = 1, if part of one line segment of the LineString lies outside of the MultiPolygon, else .false (Note this value cannot be 0.)
E ∩ B = 0, if at least one endpoint of the LineString lies outside of the MultiPolygon, else .false
E ∩ E = 2
If the order of the two geometries is reversed, the intersection matrix would be the transpose of the above.
**The dimension of the intersection of two geometries, both of which are dimension .two, is either .zero,.one, .two., or .false**
if a line segment from one polygon boundary crosses over a line segment of the boundary of the other polygon, then return .two. If one polygon is completely contained inside another polygon, but not completely contained inside a hole within the first polygon, return .two. If the boundaries of the two polygons overlap perfectly, return .two. If the boundaries of the two polygons overlap on any sub-segment, return .one. If the boundaries of the two polygons touch at one or more points, return .zero, else return .false.