티스토리 뷰

.shx : shp, dbf 등의 인덱스 정보

.shp : 피쳐(점, 선, 면) 정보

.dbf : 피쳐들의 속성 정보, dBase 5 형식 필드(컬럼) 과 레코드(행) 으로 이루어짐 RDBMS의 테이블이랑 굉장히 유사함

 

- .shx와 .shp 의 첫 100Byte는 각 파일의 정보를 가지고있는 헤더 부분이며 두 파일의 헤더 구조는 동일하다

!주의 점 리스트

1. shx 헤더의 FileLength Byte는 .shx의 FileLength 다 .shp가 아니라

2. 어떤 Byte는 빅엔디안, 어떤 Byte는 리틀엔디안 등으로 섞여있어서 사용하는 컴퓨터 사양에 맞춰 변환해줘야 함

3. 16bit int 형식으로 저장된 데이터들이 존재함. 예를들어 FileLength를 읽어왔더니 1000이라네? 근데 이게 16bit int, 결국 WORD 타입이라는 얘기로 실제 32bit int로 만들어 주려면 * 2를 해줘야함 그래야 실제 FileLength가 나옴.

 

- .shx의 레코드 부분은 레코드 헤더가 따로 없다. 그냥 레코드 몸통만 있음. 이 레코드 몸통은 8Byte 길이를 가지는데

앞 4Byte는 .shp의 레코드 정보들을 순서에 맞게 인덱싱 하고있음.

.shp의 10번째 레코드 정보를 읽어오고 싶다면 .shx의 10번째 레코드 offset을 읽어와서 shp 파일에서  offset만큼 이동시킨 위치에서 바이트를 읽으면 됨. 읽어오는 사이즈는 shx의 레코드 나머지 뒤 4Byte 부분인 ContentLength를 확인하여 그만큼 읽으면 됨

 

- .dbf파일은 헤더, 필드 정보, 레코드 부분으로 이루어져있음.

dbf를 컨트롤 할 일이 있으면  포맷 문서 보면서 해야함 너무 데이터가 많아. 항시 외우고 있기에는 힘듬

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함