콘텐츠로 이동

henc · 지도파일 입출력

ENC / SENC / 카탈로그 / Shape 파일 로딩·저장·언로드

int hencLoad( const char *fn, bool flagLoadUpdate = true )
  • ENC cell 파일을 로딩 후 SENC 포맷으로 변환한다.
  • ENC catalog 파일을 로딩 후 multiple ENC 파일을 로딩한다.
  • SENC 파일을 로딩한다.
  • SENC catalog 파일을 로딩 후 SENC 포맷으로 변환하고 메모리에 로딩한다.
  • Shape 파일을 로딩 후 multiple ENC 파일을 로딩한다.

const char *fn : IN (로딩하려는 파일명)

  • = 0 : 성공
  • < 0 : 실패

int hencLoadENCintoDom( const char *fn, CDomNode *node )
  • ENC 파일을 CDomNode 포맷으로 메모리에 읽어들인다.
  • 지도 정보는 생성되지 않고 파일 내용만을 읽어들인다.
  • ENC 파일 또는 ENC를 저장하고 있는 Dom 파일만 가능
  • const char *fn : IN (읽고자 하는 파일명)
  • CDomNode *node : IN, OUT (저장소)
  • = 0 : 읽기 성공

  • < 0 : 읽기 실패

int hencIsUpdateENC( CDomNode *node )

지도 정보가 UpdateENC 여부를 판정한다.

  • ENC 정보, 함수에서 읽어온 CDomNode이어야만 정상적으로 동작한다.
  • == 0 : Update ENC로 판정된 경우
  • != 0 : Update ENC가 아닌 경우

int hencGetEncVersion( CDomNode *node, int &major, int &minor )

으로 로딩한 지도 정보의 ENC 파일 버젼을 읽어들인다. ENC 파일을 비교하거나 패치 버전 비교시에 사용된다.

  • ENC 정보, 함수에서 읽어온 CDomNode이어야만 정상적으로 동작한다.

= 0 : 성공 < 0 : 실패


int hencUpdateENCDom( CDomNode *nodeBase, CDomNode *nodeUpdate )

함수를 통해 로딩한 2 개의 ENC 파일을 가지고, S-75 파일을 패치한다.

  • CDomNode *nodeBase : IN (BASE ENC)
  • CDomNode *nodeUpdate : IN (UPDATE ENC)
  • = 0 : 성공

  • < 0 : 실패

int hencLoadDom( CDomNode *node )
  • CDomNode 포맷의 데이터로부터 지도 정보를 읽어 온다.
  • 함수에서 읽어 온 CdomNode 이어야만 정상적으로 동작한다.

CDomNode *node : IN, OUT (저장소)

  • = 0 : 읽기 성공

  • < 0 : 읽기 실패

int hencSave( const char *fn )
  • 로딩된 모든 지도 정보를 CATALOG.SENC와 각 지도 셀(cell)별 SENC 파일로 저장한다.
  • 개별 지도 cell 파일은 CATALOG 파일과 동일한 디렉토리 경로에 저장된다.

const char *fn : IN (카탈로그 파일명)

  • = 0 : 성공
  • < 0 : 실패

int hencLoadFileListFromCatalogFile( const char *fn, list &filelist )

ENC 또는 SENC Catalog 파일로부터 파일 목록을 가져온다.

  • const char *fn : IN (catalog 파일명)
  • list &filelist : OUT (파일 리스트)
  • = 0 : 성공
  • < 0 : 실패

int hencSaveCatalogSENC( const char *fn )

로드된 Map의 Catalog SENC 파일만 저장하고, cell 파일은 저장하지 않는다.

const char *fn : IN (저장될 카탈로그 파일명)

  • = 0 : 성공
  • < 0 : 실패

int hencEncfileSaveToSENC( int no, const char *dirSave )
  • 개별 지도셀(Map Cell) 파일을 SENC 파일로 저장한다. 이때 저장되는 파일명은 로딩한 파일명이 그대로 사용된다.
  • 저장시 ObjMask로 설정된 특징(Feature) 들만 저장된다.
  • hencSetObjMask() 함수를 참조하세요.
  • int no : IN
  • 저장할 지도셀(Map Cell)의 번호
  • 지도셀의 로딩시 0번부터 순서대로 번호가 부여된다.
  • , 등의 함수를 이용하면 이미 로드된 파일명과 번호를 알 수가 있다.
  • const char *dirSave : IN (저장할 디렉토리명)
  • = 0 : 성공
  • < 0 : 실패

int hencEncfileToDom( int no, CDomNode &dom )

개별 지도셀(Map Cell) 파일의 정보를 복사해 준다. 저장시 ObjMask로 설정된 특징(Feature) 들만 저장된다. hencSetObjMask()을 참조하세요. class CDomNode를 통해서 내부의 정보를 사용할 수 있다.

  • 저장할 지도셀(Map Cell)의 번호
  • 지도셀의 로딩시 0번부터 순서대로 번호가 부여된다.
  • , 등의 함수를 이용하면 이미 로드된 파일명과 번호를 알 수가 있다.

= 0 : 성공 < 0 : 실패


int hencEncfileSaveToMem( int no, LPVOID &ptr, int &size )

개별 지도셀(Map Cell) 파일의 정보를 SENC로 메모리에 저장, 복사해 준다. 저장시 ObjMask로 설정된 특징(Feature) 들만 저장된다. 함수를 참조하세요.

  • 저장할 지도셀(Map Cell)의 번호
  • 지도셀의 로딩시 0번부터 순서대로 번호가 부여된다.
  • , 등의 함수를 이용하면 이미 로드된 파일명과 번호를 알 수가 있다.

= 0 : 성공 < 0 : 실패


int hencEncfileLoadFromMem( LPVOID ptr, int size )

메모리로부터 SENC를 읽어낸다.

LPVOID ptr : IN (SENC 저장 메모리) int size : IN (SENC 정보의 크기)

= 0 : 성공 < 0 : 실패


int hencUnload( const char *fn )

해당 파일명으로 로드된 지도를 메모리에서 삭제한다.

  • no ) 함수에서 주는 파일명과 동일해야 한다.
  • 이때 파일명에는 경로(path)를 포함하지 않는다.

= 0 : 성공 < 0 : 실패

int hencUnload( int idx )

해당 번호로 로드된 지도를 메모리에서 삭제한다.

int idx : IN (지도 번호)

= 0 : 성공 < 0 : 실패


int hencUnloadAll()

로드된 모든 지도 정보를 메모리에서 삭제한다.

없음

= 0 : 성공 < 0 : 실패


int hencEncfileSetLimit( int cnt )

메모리에 로드되는 지도셀의 개수를 제한한다. 데모 버젼(Demo version) 제작을 위한 기능으로 사용할 수 있다.

int cnt : IN (최대 지도셀 개수)

= 0 : 성공 < 0 : 실패


int hencEncfileGetCount()

로드된 지도셀의 개수를 얻기 위한 기능이다.

없음

로드된 지도셀의 수


const char *hencEncfileGetName( int no )

로드된 지도셀의 파일명을 얻을 수 있다.

  • 지도셀은 로드되는 순서대로 0번부터 번호가 부여된다.

!= NULL : 파일명 (Null로 종료된 문자열) == NULL : 파일명 획득 실패 (존재하지 않는 파일 번호)


int hencEncfileGetInfo( int no, CDomNode &dom )

해당 ENC의 파일명과 영역 정보를 취득한다.

int no : IN (정보를 획득할 ENC 번호) CDomNode &dom : OUT (파일명, 영역 정보가 저장)

= 0 : 성공 < 0 : 실패


bool hencIsENCFile( const char *fn )

입력된 파일이 S-57 ENC 파일이 맞는지 검사한다.

const char *fn : IN (검사 파일명)

true : ENC 파일이 맞는 경우 false : Error 또는 ENC 파일이 아닌 경우


bool hencIsSENCFile( const char *fn )

입력된 파일이 hns SENC 파일이 맞는지 검사한다.

const char *fn : IN (검사 파일명)

true : SENC 파일이 맞는 경우 false : Error 또는 SENC 파일이 아닌 경우


bool hencIsCatalogFile( const char *fn )

ENC 또는 SENC의 Catalog 파일인지 검사하고, 파일명이 CATALOG인지 여부를 검사한다.

const char *fn : IN (검사 파일명)

true : 검사 성공, Catalog 파일이 맞는 경우 false : 검사 실패 또는 에러, Catalog 파일이 맞지 않는 경우


bool hencIsShapeFile( const char *fn )

Shape 파일인지 여부와 파일명의 확장자를 검사한다.

const char *fn : IN (검사 파일명)

true : 검사 성공, Shape 파일이 맞는 경우 false : 검사 실패 또는 에러, Shape 파일이 맞지 않는 경우


char *hencEncStringToMBC( const char *str )

으로 로딩된 ENC 정보의 저장에 사용되는 이진 문자열을 디코딩하여 멀티바이트 코드(Multi Byte Code)로 변환하기 위해 사용한다.

const char *str : IN (인코딩된 문자열)

!= NULL : 변환된 문자열 (호출자(Caller)가 메모리 해제(free)해야 함) == NULL : 변환 실패

ENC 정보 저장 이진 문자열은 인코딩 타입과 이진 문자열을 가지고 있다. 이는 S-57 표준의 문자열 인코딩을 지원하기 위한 포맷이다.