MapGuide API Reference
|
[OGC99-049] defines overlaps as:
A.Overlaps(B) iff ( dim( I(A) ) = dim( I(B) ) = dim( I(A) intersect I(B) ) ) and (A intersect B is not A) and (A intersect B is not B) where dim(...) is dimension of ... and I(A) is interior of A
Expressed in terms of the DE-9IM :
Case A is a Point and B is a Point:
Case A is Polygon and B is a Polygon:
A.Overlaps(B) iff ( I(A) intersect I(B) is not empty) and ( I(A) intersect E(B) is not empty) and ( E(A) intersect I(B) is not empty) iff A.Relate(B, "T*T***T**") where E(B) is exterior of B and "T*T***T**" means
dim( I(A) intersect I(B) ) belongs to { 0, 1, 2 }
dim ( I(A) intersect B(B) ) does not matter
dim ( I(A) intersect E(B) ) belongs to { 0, 1, 2 }
dim ( B(A) intersect I(B) ) does not matter
dim ( B(A) intersect B(B) ) does not matter
dim ( B(A) intersect E(B) ) does not matter
dim ( E(A) intersect I(B) ) belongs to { 0, 1, 2 }
dim ( E(A) intersect B(B) ) does not matter
dim ( E(A) intersect E(B) ) does not matter
Case A is a LineString and B is a LineString:
A.Overlaps(B) iff ( I(A) intersect I(B) is 1) and ( I(A) intersect E(B) is not empty) and ( E(A) intersect I(B) is not empty) iff A.Relate(B, "1*T***T**") where "1*T***T**" means
dim( I(A) intersect I(B) ) is 1
dim ( I(A) intersect B(B) ) does not matter
dim ( I(A) intersect E(B) ) belongs to { 0, 1, 2 }
dim ( B(A) intersect I(B) ) does not matter
dim ( B(A) intersect B(B) ) does not matter
dim ( B(A) intersect E(B) ) does not matter
dim ( E(A) intersect I(B) ) belongs to { 0, 1, 2 }
dim ( E(A) intersect B(B) ) does not matter
dim ( E(A) intersect E(B) ) does not matter
There is none.
The FDO Oracle Provider maps the OGC overlaps operator to the Oracle spatial operator overlapbdyintersect.
[OSUGR] defines overlapbdyintersect as follows. "The boundaries and interiors of the two objects intersect."
overlaps = overlapbdyintersect as used in the third argument to the sdo_relate spatial operator, for example, sdo_relate(a.GEOMETRY, MDSYS.SDO_GEOMETRY(2005, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1,2), MDSYS.SDO_ORDINATE_ARRAY(3,1, 5,1)), 'mask=overlapbdyintersect').