0

IRelationalOperator を使用して交差チェックを行うために IPoint をバッファリングするにはどうすればよいですか?

議論のために、私は持っています:

IPoint p1 = xxx;
IPoint p2 = yyy;
IRelationalOperator rel1 = (IRelationalOperator)p1;
   if (rel.Intersects (p2))
    // Do something

しかし今、チェックに許容範囲を追加したいので、正しい方法は p1 または p2 のいずれかをバッファリングすることだと思います。右?そのようなバッファを追加するにはどうすればよいですか?

注: 私が使用している Intersects メソッドは、コードを単純化するために作成した拡張メソッドです。ここにあります:

/// <summary>
/// Returns true if the IGeometry is intersected.
/// This method negates the Disjoint method.
/// </summary>
/// <param name="relOp">The rel op.</param>
/// <param name="other">The other.</param>
/// <returns></returns>
public static bool Intersects (
    this IRelationalOperator relOp,
    IGeometry other)
{
    return (!relOp.Disjoint (other));
}
4

1 に答える 1

2

OK、答えが見つかりました。または答え。ITopologicalOperator インターフェイスを使用します。

IPoint p1 = xxx;
IPoint p2 = yyy;
ITopologicalOperator topoOp = (ITopologicalOperator)p2 ;
IGeometry p2Bufferd = topoOp.Buffer (bufferSize);

IRelationalOperator rel1 = (IRelationalOperator)p1;
   if (rel.Intersects (p2Bufferd))
    // Do something
于 2010-05-10T11:35:23.453 に答える