콘텐츠로 이동

henc · 전시 환경

레이어·가시성·픽셀·심볼 스케일·메르카토르·심도·색상·폰트 등 전시 설정

DWORD hencGetMapLevelMask()
  • ENC 지도는 6 개의 지도 레벨이 있다. 이 함수는 현재 지도의 레벨별 전시 여부에 대한 플래그값(flag)을 획득한다. 즉, 각 레벨별 전시 설정값을 획득한다.
  • 각 레벨별로 LSB05의 비트값은 각각 16 S-57 Code에 해당된다. 각 비트값에 따라 해당 레벨이 지도를 화면에 전시하거나 전시하지 않는다.
  • 0 이면 전시하지 않고, 1 이면 전시한다.

없음

레벨별 비트 마스크(Bit Mask)


void hencSetMapLevelMask( DWORD mask )
  • 지도의 레벨별 전시 여부를 설정하기 위한 함수이다. 각 지도 레벨별 전시 설정 여부는 비트마스크(Bit Mask) 형태로 지정한다.
  • 각 레벨별로 LSB05의 비트값은 각각 16 S-57 Code에 해당된다. 각 비트값에 따라 해당 레벨이 지도를 화면에 전시하거나 전시하지 않는다.
  • 0 이면 전시하지 않고, 1 이면 전시한다.
  • Level 05는 S-57 Code 16에 해당하며, 각 지도 전시 여부를 결정

없음

  • 전자해도 로드시 레벨 값은 지도셀의 파일명이 xx?xxxxx.xxx일 경우, ?의 값으로 지정된다. 이 값은 S-57 코드값으로 1~6 까지 설정이 가능하다. 내부적으로 저장되는 레벨 값은 S-57 코드값 보다 1 작은 값으로 세팅된다.
  • (예) Level 0 = S-57 Code 1
  • 레벨 값을 확인할 수 없는 경우에는 “0”으로 지정한다.
  • 레벨 10은 최상위 레벨로서 별도로 처리되며, 모든 지도의 최상위 계층에 그려지게 된다.
  • 함수의 결과값으로 지도의 레벨 값을 변경할 수가 있다.

int hencEncfileGetVisible( int no )

각 지도셀 별로 전시가 설정되어 있는지 여부를 확인한다.

int no : IN (지도 번호)

  • 0 : 전시

  • == 0 : 미전시
  • < 0 : 실패 (지도 번호 오류)
  • 상세 내용은 “지도 파일 입출력”을 참고

int hencEncfileSetVisible( int no, int isShow )
  • flag가 0 이면, 해당 지도셀을 화면에서 보이지 않도록 감춘다.
  • int no : IN (지도 번호)
  • int isShow : IN (0 : 미전시, 1 : 전시)
  • = 0 : 성공
  • < 0 : 실패

int hencEncfileSetLevel( int no, int level )
  • 개별 지도 파일의 레벨을 변경한다.
  • 각 지도를 로딩할 때 파일명에 포함된 S-57 코드값에 따라 전시 레벨이 결정된다.
  • 상위 레벨(숫자가 크면 상위 레벨)이 하위 레벨의 지도와 영역이 겹치는 경우, 상위 레벨 지도가 하위 레벨 지도를 가리게 된다.
  • int no : IN (지도 번호)
  • int level : IN (지도 레벨, 0~5 or 10까지 가능)
  • = 0 : 성공
  • < 0 : 실패

int hencEncfileGetLevel( int no )

지도 맵 파일(Map File)의 현재 설정된 레벨값을 얻는다.

int no : IN (지도 번호)

  • 0~5 or 10 : 성공 (레벨 값)
  • < 0 : 실패

int hencEncfileSetBottom( int no )

특정 지도 셀을 레벨 0으로 지정하여 화면상에서 다른 지도의 하위 레이어에 그려지도록 한다.

없음

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

int hencEncfileSetTopMost( int no )

특정 지도 셀을 레벨 10으로 지정하여 화면상에서 다른 지도의 상위 레이어에 그려지도록 한다.

없음

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

int hencEncfileSetScaleForTopmost( int scale )
  • 레벨 10의 지도를 전시할 최소의 축척을 지정한다. 이는 최상위(Top Most)의 지도가 용량이 매우 크고, 상세한 지도일 때 사용하기 위한 함수이다.
  • 즉, 기존 전자해도 상위에 추가적으로 오버레이(Overlay)하는 지도를 사용하기 위한 용도에 적용될 수 있다.
  • 0 : 상시 전시
  • 0 : 전시 축척 1:N에서 N 값이 스케일(scale) 값보다 작을 때에만 전시

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

int hencSetObjMask( EEncObject obj, bool flag )

ENC Feature Object의 종류별 전시 여부를 지정한다.

  • EEncObject obj : IN (ENC Feature Object Code)
  • 2.23.1 S-57 Feature Object Catalog 참조
  • bool flag : IN
  • true : 전시
  • false : 미전시
  • = 0 : 성공
  • < 0 : 실패

bool hencGetObjMask( EEncObject obj )

ENC Feature Object의 종류별 전시 여부를 획득한다.

  • 2.23.1 S-57 Feature Object Catalog 참조
  • true : 전시
  • false : 미전시

int hencSetPixelSize( double meter )
  • 지도의 축척 계산에 사용되는 화면 픽셀의 크기를 지정한다. (단위 : meter)
  • 함수와 연동이 되며, 단위만 차이가 있다.

double meter : IN (화면 1 픽셀의 크기, meter)

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

기본 설정값 : 0.000265 ~= 96DPI


int hencSetPixelDPI( int dpi )
  • 지도의 축척 계산에 사용되는 화면 픽셀의 크기를 지정한다. (단위 : 픽셀수, DPI)
  • 함수와 연동이 되며, 단위만 차이가 있다.

int dpi : IN (화면 1 인치 당 픽셀 수, DPI)

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

기본 설정값 : 0.000265 ~= 96DPI


double hencGetPixelSize()

설정된 화면 1 픽셀의 크기 값을 미터 단위로 변환하여 반환한다.

없음

설정된 화면 1 픽셀에 해당하는 크기 값 (미터 단위)

기본 설정값 : 0.000265 ~= 96DPI


int hencGetPixelDPI()

설정된 화면 1 픽셀의 크기 값을 DPI 단위로 변환하여 반환한다.

없음

설정된 화면 DPI 값

기본 설정값 : 0.000265 ~= 96DPI


double hencGetSymbolScale()

S-52 심볼(Symbol), 패턴(Pattern), 라인(Line) 등의 크기값을 획득한다.

없음

Symbol Scale 값


int hencSetSymbolScale( double scale )

S-52 심볼(Symbol), 패턴(Pattern), 라인(Line) 등의 크기값을 지정한다. 이 값의 비율에 따라 각 심볼, 패턴, 라인이 같은 비율로 바뀐다.

double scale : IN (심볼의 크기(Symbol Scale) 값)

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

기본 설정값 : 0.033333 ~= 96DPI


bool hencIsAutoScaleToZoom()

위도 변경시 전시 배율의 자동 조정 기능을 사용하고 있는지 여부를 확인한다.

없음

  • true : 자동 배율을 사용
  • false : 자동 배율을 사용하지 않음

int hencSetAutoScaleToZoom( bool flag )

위도 변경시 축척값에 맞게 전시 배율을 자동으로 조정하는 기능을 설정한다.

  • true : 자동 배율을 사용
  • false : 자동 배율을 사용하지 않음
  • = 0 : 성공
  • < 0 : 실패

bool hencIsMercator()

Mercator 투영법의 사용 여부를 확인한다.

없음

  • true : Mercator 투영법을 사용
  • false : Mercator 투영법을 사용하지 않음

void hencSetMercator( bool flag )

Mercator 투영법의 사용 여부를 지정한다.

  • true : Mercator 투영법을 사용
  • false : Mercator 투영법을 사용하지 않음

없음


void hencSetSimplifiedSymbol( bool flag )

S-52 심볼, 패턴, 라인을 전시할 때 간략화 심볼(Simpilfied Symbol)의 사용 여부를 지정한다.

  • true : Simpilfied 심볼, 패턴, 라인을 사용
  • false : Simpilfied 심볼, 패턴, 라인을 사용하지 않음

없음


bool hencIsSimplifiedSymbol()

S-52 심볼, 패턴, 라인을 전시할 때 간략화된 심볼(Simpilfied Symbol)의 사용 여부를 확인한다.

없음

  • true : Simpilfied 심볼, 패턴, 라인을 사용
  • false : Simpilfied 심볼, 패턴, 라인을 사용하지 않음

EDisplayCategory hencGetDisplayCategory()

전시 카테고리를 획득한다. (2.23.5절의 S-52 Display Category 참조)

없음

EDisplayCategory의 현재 설정값


void hencSetDisplayCategory( EDisplayCategory c )

전시 카테고리를 지정한다. (2.23.5절의 S-52 Display Category 참조)

EDisplayCategory c : IN (EDisplayCategory 설정값)

없음


void hencSetNationalLanguage( bool flag )
  • ENC 파일 내에 지역 언어의 사용 여부를 지정한다.
  • 각 ENC 특성 객체(Feature Object)의 정보를 표시할 때 지역 언어 정보를 포함하고 있으면, 이를 사용할 것인지 여부를 지정한다. 사용하지 않도록 설정하면 항상 영어로 표시된다.
  • true : 지역 언어 사용
  • false : 영어만 사용

없음


bool hencIsNationalLanguage()

ENC 파일 내에 지역 언어의 사용 여부를 확인한다.

없음

  • true : 지역 언어 사용
  • false : 영어만 사용

int hencGetUseScaleMinMax()

ENC Feature Object 내에 SCAMIN, SCAMAX 값을 활용하여 전시하고 있는지 여부를 확인한다.

없음

  • != 0 : 사용 중
  • ==0 : 사용 안 함
  • < 0 : 실패

void hencSetUseScaleMinMax( int flag )

ENC Feature Object 내 SCAMIN, SCAMAX 값을 활용하여 전시할지 여부를 지정한다.

  • != 0 : 사용
  • ==0 : 사용 안 함

없음


int hencGetUseScaleMinMax()

지도 전시 시 레벨에 따라 전시 여부를 결정하는 기능의 사용 여부를 획득합니다.

없음

  • != 0 : 사용 중
  • ==0 : 사용 안 함
  • < 0 : 실패

void hencSetViewMapByScale( int flag )

지도 전시 시 레벨에 따라 전시 여부를 결정하는 기능의 사용 여부를 설정한다. 지정된 축척 이하에서는 상세 지도를 화면에서 감추는 기능을 설정한다.

  • != 0 : 사용
  • ==0 : 사용 안 함

없음


int hencSetDepth( EDepthType t, double depth )

현재 설정된 수심을 표시하는 설정값을 변경한다. S-52 CSP에 사용되는 수심 별 색상 및 선 구분 표시에 사용되는 수심값을 설정한다.

  • EDepthType t: IN (수심 종류)
  • double depth : IN (수심 값, meter)
  • = 0 : 성공

  • < 0 : 실패

double hencGetDepth( EDepthType t );
  • 현재 설정된 수심 표시에 대한 설정값을 획득한다.
  • 상세 내용은 함수를 참조

EDepthType t : IN (수심 종류) enum EDepthType { SHALLOW_CONTOUR, DEEP_CONTOUR, SAFETY_CONTOUR, SAFETY_DEPTH, DEPTHTYPE_MAX };

현재 설정값


int hencSetShallowPattern( bool flag )

얕은 수심을 표시하기 위한 저수심 패턴(Shallow pattern)의 표시 여부를 설정한다.

  • true : 저수심 패턴을 표시
  • false : 저수심 패턴을 표시 안함
  • = 0 : 성공

  • < 0 : 실패

bool hencIsShallowPattern()

얕은 수심을 표시하기 위한 저수심 패턴(Shallow pattern)의 표시 유무 설정값을 획득한다.

없음

저수심 패턴의 전시 유무 값


int hencSetTwoShades( bool flag )
  • 해수면의 수심 영역을 표시할 때 2 가지 색상만 사용할지에 대한 여부를 설정한다.
  • 해수면은 2 가지 색상 또는 4 가지의 색상으로 수심 깊이에 따라 다른 색상으로 표시된다. 이때 사용할 색상의 수를 지정한다.
  • true : 2가지 색상만을 사용
  • false : 2가지 색상 이상을 사용
  • = 0 : 성공

  • < 0 : 실패

bool hencIsTwoShades()

해수면을 표시할 때 2가지 색상 모드를 사용하는지 여부를 획득한다.

없음

1: 2가지 색상 사용 1: 2가지 색상 사용하지 않음(4가지 색상이 사용됨)


int hencSetHideMeta( bool flag )

S-57 ENC의 특성객체(Feature Object) 중에서 메타객체(Meta Object, 300번대 Object Code)에 해당하는 객체의 표시 여부를 설정한다.

  • true : 메타객체를 전시하지 않음
  • false : 메타객체를 전시
  • = 0 : 성공

  • < 0 : 실패

bool hencIsHideMeta()

메타객체(Meta Object)의 전시 여부 설정값을 획득한다.

없음

메타객체의 전시 여부


int hencSetColorset( EEncColorset colorset )

지도 전시 색상표를 지정한다. (S-52 Color 참조)

EEncColorset colorset : IN (색상표 값) enum EEncColorset { COLORSET_DAY_BRIGHT, COLORSET_DAY_WHITEBACK, COLORSET_DAY_BLACKBACK, COLORSET_DUSK, COLORSET_NIGHT, COLORSET_USER, COLORSET_MAX };

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

EEncColorset hencGetColorset()

사용 중인 지도 전시 색상표 값을 획득한다. (S-52 Color 참조)

없음

사용 중인 지도 전시 색상표 값 enum EEncColorset { COLORSET_DAY_BRIGHT, COLORSET_DAY_WHITEBACK, COLORSET_DAY_BLACKBACK, COLORSET_DUSK, COLORSET_NIGHT, COLORSET_USER, COLORSET_MAX };


int hencFontGet( LOGFONT *lf )

지도 전시에 사용할 글꼴에 대한 설정값을 획득한다.

LOGFONT *lf : IN, OUT (Win32 LOGFONT structure)

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

int hencFontSet( LOGFONT *lf )

지도 전시에 사용할 글꼴의 설정값을 지정한다.

LOGFONT *lf : IN (Win32 LOGFONT structure)

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

int hencPrintf( double x, double y, COLORREF co, const char *fmt, ... )
  • 지도 전시에 사용되는 글꼴과 동일한 글꼴로 지정된 좌표에 지정된 색상으로 문자열을 그린다.
  • C언어의 printf 형태의 문자열 formatting 기능
  • double x : IN (글자를 표시할 OpenGL x 좌표값)
  • double y : IN (글자를 표시할 OpenGL y 좌표값)
  • COLORREF co : IN (글자 색상)
  • const char *fmt : IN (화면에 표시할 문자열, Null로 종료된 문자열)
  • C언어 printf 포맷 규격을 참조
  • = 0 : 성공

  • < 0 : 실패
int hencPrintf( double x, double y, double z, COLORREF co, const char *fmt, ... )
  • 지도 전시에 사용되는 글꼴과 동일한 글꼴로 지정된 좌표에 지정된 색상으로 문자열을 그린다. (z 좌표 포함)
  • C언어의 printf 형태의 문자열 formatting 기능
  • double x : IN (글자를 표시할 OpenGL x 좌표값)
  • double y : IN (글자를 표시할 OpenGL y 좌표값)
  • double z : IN (글자를 표시할 OpenGL z 좌표값)
  • COLORREF co : IN (글자 색상)
  • const char *fmt : IN (화면에 표시할 문자열, Null로 종료된 문자열)
  • C언어 printf 포맷 규격을 참조
  • = 0 : 성공

  • < 0 : 실패