IRelationalOperator接口簡介幾何對象之間都存在某種關聯關系,如包含,相等,在內部,相交,疊加等。這些關聯關系的獲得都可以通過IRelationalOperator接口來獲得,關系運算是在兩個幾何對象間進行的,通過IRelationalOperator的某一個方法返回一個布爾值來說明這兩個幾何對象是否有這種關系。所有支持ITopologicaloperator的幾何對象的類也實現了IRelationalOperator接口,其中包括Envelope對象,這意味着還可以對兩個幾何對象的Envelope進行關聯關系檢查。
方法名稱 | 描述 |
Contains | 檢查兩個幾何圖形幾何圖形1是否包含幾何圖形2 |
Crosses | 用於檢測兩個幾何圖形是否相交 |
Equal | 用於檢測兩個幾何圖形是否相等 |
Touches | 用於檢測兩個幾何圖形是否相連 |
Disjoint | 用於檢測兩個幾何圖形是否不相交 |
Overlaps | 用於檢測兩個幾何圖形是否有重疊 |
Relation | 用於檢測是否存在定義relationship |
Within | 檢查兩個幾何圖形幾何圖形1是否被包含於幾何圖形2 |
判斷幾何對象包含關系功能開發 以下代碼片段演示如何判斷幾何圖形A是否包含幾何圖形B:
/// <summary>
/// 檢測幾何圖形A是否包含幾何圖形B
/// </summary>
/// <param name="pGeometryA">幾何圖形A</param>
/// <param name="pGeometryB">幾何圖形B</param>
/// <returns>True為包含,False為不包含</returns>
private bool CheckGeometryContain(IGeometry pGeometryA, IGeometry pGeometryB)
{
IRelationalOperator pRelOperator = pGeometryA as IRelationalOperator;
if (pRelOperator.Contains(pGeometryB))
{
return true;
}
else
{
return false;
}
}