2012-06-12 3 views
2

저장하고 싶습니다 (대용량 저장) 포인트 목록; 더 정확하게 말하면 좌표 그룹의 정의되지 않은 (그러나 200을 초과하지 않는) 숫자를 포함하는 목록입니다. 각 그룹은 영역 인 (직사각형)을 나타냅니다. 이 영역은 예를 들어 Rect 구조 일 수 있습니다.포인트 목록을 저장하는 가장 좋은 방법

나를 위해 가장 좋은 방법은 무엇입니까 :
중요성을 위하여 : 저장 메모리 (분명히 이하 더)에

  1. 점유 공간.
  2. 파일이 수정되기 쉽습니다 (변경으로 인해 전체 파일을 다시 쓰는 대신 단일 좌표를 식별하고 변경하는 것이 더 낫습니다).
  3. 속도 독서.
  4. 속도 쓰기.

나는 이미 작업 (예 : 사용자 지정 클래스, 직렬화, 액세스 데이터베이스 (액세스 데이터베이스 만 사용할 수 있음) ...)로 관리되는 간단한 텍스트 형식을 설정하는 방법에 대한 아이디어가 있지만 가장 좋은 해결책은 무엇입니까?

+1

이것은 매우 주관적인 질문입니다. "최고"는 귀하의 개인 취향에 달려 있습니다. 간단한 바이너리 솔루션이 가장 메모리 효율이 높지만 코드 작성 및 디버그 옵션 중 하나이기도합니다. 텍스트는 더 많은 메모리를 차지하지만 읽기가 조금 더 쉽습니다. XML은 프로그래밍하기 쉬운 솔루션 중 하나이지만 메모리 효율성은 훨씬 낮습니다. – JDB

+1

@ Cyborgx37 주관적인 질문이기 때문에 주관적인 질문입니다. 어쨌든 나는 _best_와 무슨 뜻인지 썼습니다. – gliderkite

+0

로컬 파일 저장소로 사용 하시겠습니까, 아니면 데이터베이스가 괜찮습니까? –

답변

1

이것은 정확히 대부분의 GIS 저장소 형식으로 해결되는 문제 집합입니다. 다양한 장점과 단점을 지닌 다양한 형식이 있습니다.

OGR 프로젝트는 GIS 스타일 벡터 데이터에 대해 many formats을 지원합니다. 거의 모든 기능은 대부분의 특성을 가진 영역 기능의 저장을 지원합니다. 여기에 "최신"버전 중 하나는 ESRI's File Geodatabase 형식이며 OGR의 C# 래퍼를 통해 .NET에서 지원됩니다.

또는 SQL Server, PostgreSQL, Oracle 및 기타 데이터베이스 시스템은 공간 데이터를 데이터베이스에 직접 저장하는 기능을 지원합니다. 이것은 당신의 필요에 따라 비트 "헤비급"일지 모르지만 매우 높은 성능과 확장 성을 지원할 것입니다.

+0

GIS는 무엇을 의미합니까? OGR의 C# 래퍼에 대한 언급이 있습니까? – gliderkite

+0

@gliderkite GIS : http://en.wikipedia.org/wiki/Geographic_information_system OGR의 C# 래퍼는 자동 생성되며 OGR 프로젝트의 일부입니다. 여기에 바이너리에 포함되어 있습니다. (http://www.gisinternals.com/sdk/) "docs"는 기본적으로 C++ 문서입니다. –

1

SQL Server는 새로운 검증/수정/읽기

http://technet.microsoft.com/en-us/library/bb964711
http://technet.microsoft.com/en-us/library/bb895267.aspx

이 조작을 위해, 당신은 객체로 데이터를로드 할 수 있습니다 저장 다각형에 사용할 수있는 기본 공간 유형의 형식을 가지고 각 다각형의 점.

편집 : 제이슨 Follas 여기에 공간 유형의 좋은 탐사 있습니다
http://jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

편집 : 나는 그에서 편집 한 영업 이익은 그가에만 액세스 데이터베이스를 사용할 수 있습니다 볼 수 있도록 내 대답은 더 이상을 적용됩니다 ...하지만 다른 사람이이 질문을 그러한 DB 제한없이 찾을 수 있도록 그대로 두겠습니다.

OP의 경우 액세스 데이터베이스 만 사용하면 능력이 상당히 제한됩니다.
두 테이블을 고려해 보겠습니다. 영역은 간단한 일대 다 관계입니다.

관련 문제