문제

나는 GIS와 관련된 응용 프로그램을 연구하고 있습니다. OpenGL 화면에 읽고 플롯 할 .SHP 파일이 있습니다. 현재 OpenGL 화면은 SET에서 Orthographic Projection을 사용하고 있습니다. glOrtho() 간단한 텍스트 파일의 좌표를 사용하여 이미 맵을 표시하고 있습니다.

이제 플롯 할지도는 ShapeFile에서 읽어야합니다.

나는 다음과 같은 의심이 있습니다.

  1. .shp 파일의 WGS84 투영을 사용하는 방법 (shapefile, wkt 형식의 .prj 파일에서 읽은대로 기존 Glortho projection으로 읽는 방법 .. 수행해야 할 변환이 있습니까? 그리고 Glortho ()가 설정 한 것과 어떻게 다른가요? 기본적 으로이 정보를 사용하는 방법은 무엇입니까?

  2. 내 응용 프로그램은지도에서 정확한 위도/긴 포인트를 알 수있는 방식으로 설정해야합니다. 내가 X City에서 호버링하는 경우, 올바른 LAT/Long을 가져올 수 있습니다. gdal/gog와 같은 OpenSource Utils/API를 사용하여 수행 할 수 있다는 것을 알고 있지만 이러한 API의 문서가 내 안에 들어 가지 않기 때문에 엉망이됩니다. 머리. 나는 샘플 c ++ 프로그를 찾으려고 노력했지만 하나를 찾을 수 없었습니다.

  3. 나는 이미 지점/폴리 라인/다각형 (c-shapelib 사용)을 포함하는 모양 파일에서 좌표를 읽고 OpenGL 화면에 플로팅하기 위해 이미 자신의 논리를 작성했으며 Doc에서 OGR 샘플 코드를 찾아서 포인트 모양 파일을 읽었습니다. 다각형 모양 파일. 그리고 문제는이 애플리케이션이 너무 역동적이어야하여 ShapeFile을로드 할 때 읽기중인 .shp 파일의 투영에 따라 OpenGL 화면의 투영을 올바르게 설정해야한다는 것입니다. 수정 ... 등. OGR API에서 이것을 달성하는 방법은 무엇입니까?

이 문제에 대한 당신의 의견을 친절하게 제공합니다. 나는 정말로이 작업을 만들고 싶어하지만 올바른 시작을 얻지 못했습니다 ..

도움이 되었습니까?

해결책

  1. ShapeFile 렌더링은 OpenGL에서 매우 간단합니다. C (Google IT)의 무료 모양 파일 구문 분석 라이브러리 인 "Shapelib"가 필요할 수 있습니다. Point Shapefile, Line ShapeFile의 경우 GL_LINES 및 POLYGON ShapeFile의 경우 GL_LINES에 GL_POINTS를 사용하십시오. 경계 박스 코디를 오르토로 설정하십시오.

  2. .prj 파일에서 읽은 내용은 투영 정보입니다. WGS84는 LAT/긴 코디 (구형)를 제공합니다. 그러나 디스플레이 시스템은 2D (직사각형)입니다. 따라서 3D 구형 코디를 2D 직사각형 코디로 변환해야합니다 (이것은 투영의 의미입니다). 전세계의 관심 영역에 따라 진행 유형이 많습니다 (투사 왜곡 면적/모양/특징의 크기). 유형은 폴리 시코닉, 수정 된 에베레스트, NAD, UTM 등의 다양합니다.

  3. 단순히 WGS84가 필요한 경우 .SH 파일의 경계 박스 코디를 읽고 글로르오에 할당하십시오. 투영 (예 : -utm)이 있으면 경계 박스 코디를 투사 코디로 변환 한 다음 새로 투사 된 코디를 Glortho에 할당합니다. LAT/Long을 모든 투영으로 변환하려면 "projlib"또는 "geotransengine"등과 같은 프로젝션 라이브러리가 필요할 수 있습니다.

자세한 설명은 dgplinux@ yahoo로 저에게 연락 할 수 있습니다. com

다른 팁

읽어주세요 OGR API 튜토리얼 ShapeFile과 같은 소스에서 벡터 데이터를 읽는 방법을 배울 수있는 곳. 다음으로 확인하십시오 OGR Projections 튜토리얼 프로젝션 및 공간 참조 시스템에 대한 정보를 사용하는 방법에 대해 배울 수있는 경우 OGG 소스에서 읽습니다.

GDAL/OGR에는 벡터 파일을로드하고 좌표를 변환하는 데 필요한 모든 것이 있습니다. 문서가 가장 크지 않기 때문에 GDAL에 대한 귀하의 좌절감을 이해합니다. API 사용에 대한 좋은 소개를 원한다면 gdal subversion tree에서 gdalinfo.c 및 grinfo.cpp를보십시오. 소스를 볼 수 있습니다 https://svn.osgeo.org/gdal/trunk/gdal.

도움이되지 않으면 벡터 정보를 구문 분석하고 변환을 조정하는 데 사용하는 두 가지 기본 예제가 있습니다. 그들은 정말 나쁘지만 요점을 얻는 데 도움이 될 수 있습니다.

벡터 로딩

변환 조정

마지막으로 GIS 형식에 익숙하지 않다면 ArcGIS 소개를 읽는 것이 좋습니다. 여기 아래에 Guide Books/Map Projections. 이 가이드로 인해지도 제작 훈련이 없었음에도 불구하고 전문가와 경쟁 할 수 있습니다. 또 다른 좋은 소스는 Wikipedia입니다.

의심스러운 경우 UTM을 고수하고 UTM을 좌표계로 사용하려는 UTM 그리드를 선택하십시오. x (Easting), Y (Northing) 및 Z (고도)를 사용합니다. 유일한 키는 단일 UTM 그리드를 선택하고 모든 좌표가이를 참조로 사용하는지 확인하는 것입니다. UTM은 온라인 가이드가 많기 때문에 코드를 쉽게 테스트 할 수 있습니다. OGR/GDAL 또는 기타 리소스를 사용하여 변환 코드를 찾을 수도 있습니다. 다른 예상 좌표 시스템은 가치가 있고 더 좋을 수도 있지만, 나는 그것을 시작하기 위해 그것을 볼 것입니다.

마지막으로, 다른 모든 것이 실패하면 NGA Geotrans를 살펴보십시오. 그것은 훌륭한 테스트 도구입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top