Envelope[][] extents = new Envelope[][];
施工しております。各エンベロープにはMinX
、MaxX
、MinY
およびMaxY
プロパティがあり、グリッドの 1 つのタイル (左下と右上のポイント) を表します。今、私はと のEnvelope bounds;
最小値と最大値を含むX-
別のものを持っていますY-axis
。extents
と交差するタイルを取得したいbounds
。
を使用してこれを行う簡単な方法はありますEnvelope.Intersect
か?
[編集]
今のところ、私はこの方法でそれを行いました (ブルートフォース xD):
List<Envelope> intersectedTiles = new List<Envelope>();
for (int i = 0; i < extents.LongLength; i++)
{
for (int j = 0; j < extents.Length; j++)
{
if (extents[i][j].MinX >= bounds.MinX && extents[i][j].MaxX <= bounds.MaxX &&
extents[i][j].MinY >= bounds.MinY && extents[i][j].MaxY <= bounds.MaxY)
{
intersectedTiles.Add(extents[i][j]);
}
}
}