【发布时间】:2012-09-27 12:45:48
【问题描述】:
我有Envelope[][] extents = new Envelope[][]; 构造。每个信封具有MinX、MaxX、MinY 和MaxY 属性,并表示网格的一个图块(左下角和右上角点)。现在我有另一个Envelope bounds;,其中包含X- 和Y-axis 的最小值和最大值。我想从与bounds 相交的extents 获取瓷砖。
有没有使用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]);
}
}
}
【问题讨论】:
-
你应该展示你尝试过的代码
标签: c# collections set intersection set-intersection