This document is archived and information here might be outdated. Recommended version. |
The array elements which describe the spatial relation between the query geometry and the requested geometries. There are 9 chars in this string which can be either 'F', 'T' or '*'; e.g., TT*FFT***' represents CONTAIN.
[Visual Basic .NET]
Public Property SpatialRelDescription As String
[C#]
public string SpatialRelDescription {get; set;}
[C++]
HRESULT get_SpatialRelDescription(
System.String* SpatialRelDescription
);
[C++]
HRESULT put_SpatialRelDescription(
BSTR SpatialRelDescription
);
[C++] Parameters SpatialRelDescription [out, retval]
SpatialRelDescription is a parameter of type BSTR* SpatialRelDescription [in]
SpatialRelDescription is a parameter of type BSTR
A nine character string containing describing the spatial relationships to be tested by the spatial filter. Required when setting the SpatialRel property to use the esriSpatialRelRelation enumerator.
The SpatialRelDescription allows the comparison of any spatial relationship between two geometries. A spatial relationship is defined by the intersections between the boundary, interior, and exterior of the query geometry and the requested geometry.
All of the spatial relationships defined by the esriSpatialRelEnum enumeration can be duplicated using this property.
Interior:
The interior of a shape is defined as the entire shape minus its boundary. All shapes have interior.
Boundary:
Linear and area shapes have boundaries, but point shapes do not. The boundary of linear shapes consists of the end points of all linear parts. The boundary of area shapes consists of the linear boundary of the polygon shell(s).
Exterior:
The area outside a shape. All shapes have an exterior.
Each element for the first shape, the query geometry, may be tested against each element of the second shape, the requested geometry, giving nine possible spatial intersections as listed in the table below:
Query Geometry | Requested Geometry | |
---|---|---|
1 | interior | interior |
2 | interior | boundary |
3 | interior | exterior |
4 | boundary | interior |
5 | boundary | boundary |
6 | boundary | exterior |
7 | exterior | interior |
8 | exterior | boundary |
9 | exterior | exterior |
The nine-characters string expected by ISpatialFilter::SpatialRelDescription, is used to specify whether the intersection of each of the elements in the array is true (T), false (F), or not tested (*).
For instance, in 'FFFTTT***', relationships 1-3 must be false, relationships 4-6 must be true, and relationships 7-9 are not tested.
Note that any two shapes' exteriors always intersect.
Example Strings
Shares a boundary: '****T***'
Shares a boundary and interiors intersect: 'T***T****'
Shares a boundary and interiors do not intersect: 'F***T****'
Does not touch the boundary and interiors intersect: 'T***F****'
Relation | Query Geometry | Requested Geometry | String |
Contains | Line | Line | TT*FFT*** |
Contains | Point | Line | TT*FFT*** |
Contains | Point | Point | T******** |
Contains | Line | Poly | TT*FFT*** |
Contains | Poly | Poly | TT*FFT*** |
Crosses | Line | Line | TF*FF**** |
Crosses | Poly | Line | TT**F**** |
Crosses | Line | Poly | TT**T**** |
Overlaps | Line | Line | TT*T***** |
Overlaps | Point | Point | T******** |
Overlaps | Poly | Poly | TT*T***** |
Touch | Line | Line | FF*FT**** |
Touch | Poly | Line | FF*FT**** |
Touch | Line | Poly | FF*FT**** |
Touch | Poly | Poly | FF*FT**** |
Within | Line | Line | TF**F**** |
Within | Point | Line | T******** |
Within | Point | Point | T******** |
Within | Line | Poly | TF**F**** |
Within | Poly | Poly | TF**F**** |