문제가 있습니다.교차로 색인 가져 오기
Envelope[][] extents = new Envelope[tilesCountX][tilesCountY];
// some code here to set "extents" values
var intersectedTiles =
extents
.SelectMany(es => es)
.Where(e => EnvIntersects(e, bounds))
.ToList();
private static bool EnvIntersects(Envelope e1, Envelope e2)
{
return e1.MinX >= e2.MinX && e1.MaxX <= e2.MaxX && e1.MinY >= e2.MinY && e1.MaxY <= e2.MaxY;
}
그것은 작동하지만 나는 교차 범위의 인덱스를 얻으려면 : 나는 아래의 코드를 사용하여 교차점을 찾는거야.
extents[2][7]
이 교차 요소 인 경우 2
및 7
을 얻고 싶습니다.
내 코드를 수정하여 사용 가능합니까?
[편집]
bounds
내부 MinX
, MinY
, MaxX
와 MaxY
특성을 갖는 Envelope
이다.
Envelope bounds = new Envelope();
bounds.MinX = some_value_1;
bounds.MaxX = some_value_2;
bounds.MinY = some_value_3;
bounds.MaxY = some_value_4;
'경계'는 어디에서 왔습니까? 그리고 SelectMany는 제자리에서 벗어난 것처럼 보입니다. –
어떤 버전의 C#을 사용하고 있습니까? 'Envelope [] [] extent = 새 봉투 [tilesCountX] [tilesCountY];'.NET 4.0에서는 컴파일되지 않습니다. – GolfWolf
'EnvIntersects '는'intersection '이라고하는 것보다 훨씬 더 엄격한 조건이 필요합니다. – AakashM