EIS 이미지 서비스 API

API Key

하늘소프트의 전자해도 이미지 서비스를 사용하기 위해서는 API Key를 필수 인자로 반드시 지정하여야 합니다. API Key 발급 절차는 2026년 초에 오픈할 예정입니다.

API 파라미터

EIS API를 사용하여 전자해도를 요청하는 방식은 크게 두 가지입니다.

  • 이미지 크기 기반 요청
  • 타일맵 요청

창 크기만큼의 이미지를 요청할 때는 창의 크기와 동일한 크기로 이미지의 폭과 높이를 지정합니다. 요청 시에는 맵 요청 모드를 center 또는 area로 지정해주어야 합니다. 맵 요청 모드를 center로 했을 때는 지도의 축척을 나타내는 scale을 함께 지정하여야 합니다. 맵 요청 모드를 area로 했을 때는 지도의 경계를 나타내는 좌우 경도(left, right), 상하 위도(top, bottom)를 함께 지정해야 합니다. 타일맵 방식은 타일맵 제공 URL의 처리가 가능한 프레임워크와 함께 사용하여야 합니다. 타일맵 방식에서는 맵 요청 모드를 지정하는 것은 의미가 없습니다. Mode, scale, left, top, right, bottom 외에는 전자해도의 전시 방식을 지정하는 것으로 아래 표의 값들을 요청 인자로 사용해야 합니다.

이름 타입 필수 여부 기본값 설명
key string 필수 없음 API 키. API 사용자를 인증하고 사용량 제한을 적용합니다.
mode string 선택 없음 지도 중심 설정 모드. center: 중심 좌표 사용 (lon, lat 필수), area: 영역 좌표 사용 (left, right, bottom, top 필수).
lon number 조건부 없음 중심 경도 (-180 ~ 180). mode=center일 때 필수입니다.
lat number 조건부 없음 중심 위도 (-90 ~ 90). mode=center일 때 필수입니다.
left number 조건부 없음 영역 왼쪽 경도 (-180 ~ 180). mode=area일 때 필수입니다.
right number 조건부 없음 영역 오른쪽 경도 (-180 ~ 180). mode=area일 때 필수입니다.
bottom number 조건부 없음 영역 아래쪽 위도 (-90 ~ 90). mode=area일 때 필수입니다.
top number 조건부 없음 영역 위쪽 위도 (-90 ~ 90). mode=area일 때 필수입니다.
width integer 선택 256 이미지 가로 크기.
height integer 선택 256 이미지 세로 크기.
projection string 선택 없음 지도 투영 방식. M (Mercator), W (WGS84).
Scale integer 선택 없음 지도 축척 값. 실제 지도 축척을 고려한 유효 범위 (100 - 500,000,000).
ViewByScale integer 선택 0 축척별 보기 설정 사용 여부 (0: 사용 안 함, 1: 사용).
UseScaminmax integer 선택 1 최대/최소 축척 사용 여부 (0: 사용 안 함, 1: 사용).
dispcat integer 선택 2 표시 카테고리 설정 (0: 기본, 1: 표준, 2: 전체).
rotation number 선택 없음 지도 회전 각도 (degree).
colorset string 선택 0 색상 설정 (0-4).
lang integer 선택 0 언어 설정 (0: 영어, 1: 한국어 ).
bgTransparent integer 선택 0 배경 투명 여부 (0: 불투명, 1: 투명).
displayAsGray integer 선택 0 회색조 표시 여부 (0: 컬러, 1: 컬러).
one_cell integer 선택 없음 단일 셀 표시 여부 (0: 일반, 1: 단일 셀).
text integer 선택 1 텍스트 표시 여부 (0: 사용 안 함, 1: 사용).
symbol integer 선택 1 심볼 표시 여부 (0: 사용 안 함, 1: 사용).
sounding integer 선택 1 수심 정보 표시 여부 (0: 사용 안 함, 1: 사용).
shallow integer 선택 0 얕은 수심 패턴 표시 여부 (0: 사용 안 함, 1: 사용).
twoshade integer 선택 0 2단계 음영 표시 여부 (0: 사용 안 함, 1: 사용).
metaobj integer 선택 0 메타 객체 표시 여부 (0: 사용 안 함, 1: 사용).
symscale Number 선택 없음 심볼 크기 조정 비율 (0.022222, 0.033333, 0.044444).
scrdpi integer 선택 없음 화면 DPI.
grid integer 선택 0 격자 표시 여부 (0: 사용 안 함, 1: 사용).
compass integer 선택 없음 나침반 표시 여부 (0: 사용 안 함, 1: 사용).
refdist number 선택 없음 기준 거리.
fontsize number 선택 없음 글꼴 크기.
lightsector integer 선택 0 광원 섹터 표시 여부 (0: 사용 안 함, 1: 사용).
lightdesc integer 선택 0 광원 설명 표시 여부 (0: 사용 안 함, 1: 사용).
informsymbol integer 선택 0 정보 심볼 표시 여부 (0: 사용 안 함, 1: 사용).
textdec integer 선택 1 텍스트 겹침 방지 여부 (0: 사용 안 함, 1: 사용).
soundingdec integer 선택 1 수심 정보 겹침 방지 여부 (0: 사용 안 함, 1: 사용).
shallowcnt integer 선택 없음 얕은 수심 경계선 깊이값.
deepcnt integer 선택 없음 깊은 수심 경계선 깊이값.
safetycnt integer 선택 없음 안전 수심 경계선 깊이값.
safetydepth number 선택 없음 안전 수심 깊이.
textborder integer 선택 0 텍스트 테두리 표시 여부 (0: 사용 안 함, 1: 사용).
imageformat string 선택 png 이미지 형식 (png, jpg, webp).
pngquality integer 선택 3 PNG 품질 (1-9).
jpgquality integer 선택 95 JPG 품질 (0-100).
webpquality integer 선택 95 WEBP 품질 (1-100).
overscanw integer 선택 없음 가로 오버스캔 픽셀 수.
overscanh integer 선택 없음 세로 오버스캔 픽셀 수.
symbology string 선택 "T" 심볼 표시 방식 설정 (T: 일반 심볼, S: 단순화된 심볼).

이미지 크기 기반 요청 방법

이미지 크기로 전자해도 이미지를 요청할 때는 HTTP GET 또는 POST 방식을 사용할 수 있습니다.

GET 요청 방법

GET 방식으로 이미지를 요청할 때는 아래와 같은 URL 형식을 사용합니다.

          
https://eisapi.hanulsoft.co.kr?key={YOUR_API_KEY}&param1=value1&...&paramN=valueN
          
        
사용 예시 1: mode=center
          
https://eisapi.hanulsoft.co.kr/?key={YOUR_API_KEY}&mode=center&scale=10000000&lon=127&lat=35&width=1024&height=768
  
        
get_mode_center

center 모드에서 GET 요청 결과

사용 예시 2: mode=area
          
https://eisapi.hanulsoft.co.kr/?key={YOUR_API_KEY}&mode=area&left=110&right=140&top=36&bottom=34&width=1024&height=768
          
        
get_mode_area

area 모드에서 GET 요청 결과

POST 요청 방법

POST 요청은 GET 방식과 유사하지만, 인자를 POST 요청의 Body에 기록하여 URL에서 인자를 노출시키지 않는 방식입니다.

POST 방식으로 이미지를 요청할 때는 아래와 같은 EIS API의 URL만 지정하고 인자는 요청 메시지 바디에 따로 넣도록 합니다.

사용 예시 1: mode=center

POST URL: https://eisapi.hanulsoft.co.kr

          
{
  "key" : "{YOUR_API_KEY}",
  "mode": "center",
  "scale": 10000000,
  "lon": 127,
  "lat": 35,
  "width": 1024,
  "height":768
}
          
        
post_mode_center

center 모드에서 POST 요청 결과

사용 예시 2: mode=area

POST URL: https://eisapi.hanulsoft.co.kr

          
{
  "key" : "{YOUR_API_KEY}",
  "mode": "area",
  "left": 110,
  "right": 140,
  "top": 36,
  "bottom": 34,
  "width": 1024,
  "height":768
}
          
        
post_mode_area

area 모드에서 POST 요청 결과

타일맵 요청 방법

타일맵은 OpenLayers나 leaflet처럼 타일맵 URL을 받아서 처리할 수 있는 프레임워크와 함께 사용할 수 있습니다. 타일맵 요청에는 지도의 확대/축소값 z, 가로 타일의 인덱스 x, 세로 타일의 인덱스 y를 지정된 형식의 URL에 지정해야 합니다. 타일맵 요청은 GET 방식만 받아들일 수 있으므로, API Key 및 다른 인자들을 쿼리 스트링 형식으로 타일맵 URL에 추가해주면 됩니다.

하늘소프트 EIS 타일맵 URL

          
https://eisapi.hanulsoft.co.kr/tilemap/{z}/{x}/{y}.png?key={YOUR_API_KEY}&param1=value1&...&paramN=valueN
          
        

Leaflet을 사용한 예시

          
// 맵 초기화
let map = L.map("map").setView([34.8808, 128.622], 10); // 거제도, 대한민국

const ENC_SERVER_URL = "https://eisapi.hanulsoft.co.kr";
const my_api_key = "{YOUR_API_KEY}";
const urlTemplate = `${ENC_SERVER_URL}/tilemap/{z}/{x}/{y}.png?key={my_api_key}&text=0&symbol=0`;

let tileLayer = L.tileLayer(urlTemplate, {
  attribution: "© Hanulsoft ENC",
  maxZoom: 18
}).addTo(map);
          
        

위 코드는 Leaflet을 사용하여 지도를 초기화하고, API로부터 타일 이미지를 가져와 지도에 표시하는 예시입니다. API 키와 요청 파라미터를 적절히 설정해야 합니다.

참고

  • eis.hanulsoft.co.kr 사이트에서 사용된 API KEY를 여러분이 개발하는 웹사이트에서 사용 시 전자해도 서비스가 되지 않으니 여러분의 API KEY를 반드시 발급받으시기 바랍니다.
  • API 키를 안전하게 관리하고 노출되지 않도록 주의하십시오.