2009-06-25 4 views
6

C++에서 공간 데이터를 조작하기위한 권장 프레임 워크는 무엇입니까?C++에서 공간 데이터를 조작하기 위해 권장되는 프레임 워크는 무엇입니까?

나는 polygon 객체, point 객체, union, intersection, distance, area와 같은 연산을 찾고있다. WGS84 (lon, lat) 좌표를 입력하고 면적을 평방 킬로미터로 가져와야합니다.

무료/오픈 소스 프레임 워크를 선호하지만 제안 사항이 있습니다.

편집 : 불행히도 저는 비 GPL 솔루션이 필요합니다. LGPL은 괜찮습니다.

답변

3

GEOS은 오픈 소스 (LGPL) C++ 기하/토폴로지 엔진입니다. 너에게 어울리지 않을까?

이 자료를 찾는 데 유용한 곳은 O'Reilly 웹 사이트의 useful article이며 오픈 소스 지리 공간 자료를 지원하는 공동 작업 인 OSGeo입니다.

0

이러한 계산의 복잡도에 따라 직접 작성하는 것이 좋습니다. 속도와 부 풀림에 대한 최선의 선택이 될 수있는 분야를하고 있다면.

그렇지 않은 경우 Geographic Foundation Class (GFC) library이 최선의 방법입니다.

+0

감사합니다. 불행히도 비 GPL 솔루션이 필요하므로 질문을 명확히했습니다. –

0

그것은 포괄적이고 당신이 무엇을 요구 충분히 높은 수준은 아니지만, 측지을하고 당신은 NGA의 우수한 GEOTRANS 라이브러리를 사용할 수있는 변환 : 드릴 것입니다

http://earth-info.nga.mil/GandG/geotrans/

당신이 WGS84 위도 같은 일 사이의 변환/long 및 로컬 데카르트 좌표계. C 코드는 잘 테스트되고 문서화되며 공개 도메인입니다.

2
  • CGAL 오픈 소스 프로젝트 은 C++ 라이브러리의 형태로 효율적이고 신뢰할 수있는 기하학적 알고리즘에 쉽게 액세스 할 수 있습니다. 세대 메쉬, 컴퓨터 그래픽, 과학적 시각화, 컴퓨터 지원 설계 및 모델링, 지리 정보 시스템, 분자 생물학, 의료 영상, 로봇 모션 계획 : CGAL 같은 기하학적 계산을 필요로하는 다양한 분야에서 을 사용 , 수치 방법.

  • 일반 지오메트리 라이브러리 (geometrialibrary.geodan.nl, 현재 "preview 4"에 있음)는 사용자 정의 지오메트리로 작업하는 지오메트리 알고리즘의 일반적인 구현을 제공합니다. 알고리즘에는 point-in-polygon, polygon area, point-to-point distance, point-to-line distance, line clipping과 polygon clipping, convex hulls와 같은 잘 알려진 알고리즘이 필요합니다. 또한 변형 알고리즘,지도 투영 및 선택 알고리즘을 포함합니다. 알고리즘 외에도 라이브러리는 사용할 수있는 지오메트리 클래스를 제공하지만 일반적인 알고리즘은 해당 클래스에 의존하지 않습니다. RastersVectors을 지원하는 공간 데이터 추상화 라이브러리 기하학 모델

1

GEOS (부스트에 포함되도록 제안) 및 GDAL/OGR.

이러한 라이브러리를 사용하면 두 좌표 모두 Proj.4을 사용하기 때문에 서로 다른 좌표계 (예 : WGS84와의 변환)를 처리 할 수 ​​있습니다. 거리를 미터로 찾으려면 WGS84에서 UTM과 같은 미터를 사용하는 것으로 변형 할 수 있습니다.

3

최근에 reviewed이고 Boost C++ Libraries 컬렉션으로 승인 된 Generic Geometry Library도 좋습니다. Boost에 포함 된대로 GGL은 현재 Boost.Geometry, 더 정확하게는 Boost.Geometry 또는 GGL, 일반 기하학 라이브러리이라고 부릅니다.

기타 유용한 도구

  • ORFEO Toolbox (일명 OTB)

    - 이미지 처리 알고리즘
  • MetaCRS의 도서관 - 몇 가지 예측을 포괄 프로젝트 및 시스템 관련 기술을 좌표입니다. GFC에 대한 포인터에 대한 유일한 GeoTIFF 조작에 대한
  • libgeotiff