2009-03-10 19 views
3

열 레이어를 사용하여 우리의 기본지도 위에 오버레이 할 일부 열지도 스타일의 타일을 만들고 싶습니다. 기본적으로, 일부 바운딩 박스를 그리드로 나누고 그 그리드 스퀘어 내에 샘플의 몇 포인트가 있는지에 따라 다른 색상을 사용하여 그리드의 각 사각형을 표시하려고합니다.C#으로 지오 참조 된 이미지 생성하기

관련된 기술은 C#, OpenLayers, SQL Server 2008 및 GeoServer입니다.

내 질문은 기본적으로 일반적인 접근 방법 중 하나이며, 나는이 곳에서 치즐의 끝 부분을 어디에 두어야하는지 잘 모르겠습니다.

내 궁극적 인 목표는 임의의 경계 상자를 가져 와서 해당 경계 상자에 맞는 x-mile 그리드를 계산하고, 개별 점의 모음을 반복하고 하나의 격자 사각형에 할당하는 것입니다 다른 하나는 그리드 사각형 당 포인트 밀도를 계산할 수 있고 밀도에 따라 그리드의 색상을 지정한 다음 Open Layers를 사용하여 CloudMade 기본 맵에 오버레이 할 수 있습니다.

모든 도움은 모든 부분이나 모든 부분에서 크게 감사하겠습니다.

답변

4

테두리 상자가 축 정렬 된 경우 매우 간단합니다. 그냥 이미지를 만들고 손으로 세계 파일을 만듭니다. 세계 파일은 단지 6 줄의 텍스트이며 필요한 모든 것을 이미 알고 있습니다 (x & 픽셀 크기, 왼쪽 상단 모서리 좌표).

상자의 모서리가 아닌 왼쪽 상단 모서리 픽셀의 가운데를 사용하는지 확인하십시오.

------ 여기에 당신이

이 경계 상자의 왼쪽 상단 모서리가 203732x598374에 있습니다 말 ------- 세계 파일을 만들 것입니다 방법, 당신은 사각형이있는 이미지를 원하는 폭 200m 동쪽은 < -> 서쪽은 300m 높이 북쪽은 < -> 남쪽입니다.

그런 다음 픽셀의 적절한 수의 다음 여섯 줄이 있었다 세계 파일이었던 이미지를 만들 것

:

200 
0 
0 
-300 
203632 
598524 

이에 해당한다 : 당신이 사용하는 경우

200 == size of one pixel in X 
0 == shear1 
0 == shear2 
-300 == size of one pixel in Y (from top down) 
203632 == left edge - 1/2 pixel size (to center on pixel instead of edge of box) 
598524 == top edge - 1/2 pixel size (to center on pixel instead of edge of box) 

을 .png 이미지가 있으면 같은 이름으로 .pgw로 저장하려고합니다. Wiki on World Files

+0

축 정렬이란 무엇을 의미합니까? – Nathan

+0

축 정렬 == "경계 상자"가 설정되어 동쪽 및 북쪽 (축과 정렬)과 정렬됩니다. 이것은 위의 메소드를 매우 쉽게 만듭니다. 그렇지 않은 경우에도 여전히 가능하지만 지리 참조 연산은 더 어렵습니다. 더 많은 설명이 필요하면 알려주세요. –

+0

정렬하면 왼쪽 하단 모서리가 X = 0, Y = 0임을 의미합니까? 그렇다면 그 이미지는 내가 지구 전체가 될 것이므로 잘 작동하지 않을 것입니다 - 그래서 아마도 당신을 오해 할 것입니다.) – Nathan

2

"그리드에 일부 약간의 경계 상자를 분할하고, 사용 그리드의 각각의 사각형을 표시 : 당신이 .JPG를 사용하는 경우, 그것은 참조 자세한 내용은 등

, .jgw 것 그 표 사각형 안에 얼마나 많은 표본이 떨어 졌는지에 따라 다른 색이 나옵니다. " 이것은 래스터이고 색상 쉐이딩, 범례 등으로이를 표시하는 GeoServer에는 features이 있습니다. C#에서 이미지 타일을 만드는 것보다 이러한 기능을 사용하는 것이 더 유연 할 것이라고 생각합니다.GeoServer 문서에서

:

래스터 데이터 만이 아닌 사진, 오히려 그것은 그리드 지리 정보의 , 그래픽과 같은 많은 시각 정보의 격자 인으로 간주 할 수 있습니다 (빨강, 녹색 및 파랑의 조합으로). 시각적 데이터 만 포함하는 그래픽 인 과 달리 래스터 그리드의 각 포인트/픽셀은 개의 서로 다른 속성을 많이 가질 수 있으며 은 본질적으로 시각적 구성 요소 인 을 가질 수 있습니다.

이는 다른 GIS 패키지에서 주제 맵핑 또는 등고선 플롯 또는 히트 맵 또는 2.5D 플롯이라고도합니다.

당신은 Grasscreate에 래스터 그리드와 같은 무료 GIS를 사용할 수 있지만 당신의 묘사에서 당신은 (모든 세포는 적어도 하나의 점을 포함하고 있기 때문에) 보간 할 필요가 없습니다 그래서 자신의 롤 그냥 쉽게 수 있습니다 암호.

EDIT : various formats에 래스터 파일을 쓰는 데 사용할 수있는 오픈 소스 라이브러리 GDAL이 있습니다. C# 바인딩이 있습니다.

+0

훌륭한 자료, 감사합니다. 이것은 내가 한 정보이다. – Nathan

0

왼쪽 위 픽셀의 중심을 계산하는 공식이 잘못되었다고 생각합니다. 이 예에서 왼쪽 위 픽셀의 중심은 (203732,598374)의 오른쪽 아래에 있습니다. 그러니 다음과 같이해서는 안됩니까?

203832 == left edge + 1/2 pixel size (to center on pixel instead of edge of box) 
598224 == top edge - 1/2 pixel size (to center on pixel instead of edge of box)