API신청(원격 정보제공 서비스)
최신 도로명주소를 별도 개발없이 검색/활용할 수 있는 웹기반 UI가 제공됩니다.
팝업API
API정보
호출방식 | 구분 | 요청 URL | 출력결과 |
---|---|---|---|
POST GET |
웹 | https://business.juso.go.kr/addrlink/addrLinkUrl.do | 파라미터 |
요청변수
요청변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
confmKey | String | Y | 신청시 발급받은 승인키 |
returnUrl | String | Y | 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지) |
resultType | String | N | 도로명주소 검색결과 화면 출력유형 (1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명) |
useDetailAddr | String | N | 상세주소 동/층/호정보 제공여부 Y : 제공, N : 미제공(직접입력) ※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다. |
출력결과
출력변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
roadFullAddr | String | Y | 전체 도로명주소 |
roadAddrPart1 | String | Y | 도로명주소(참고항목 제외) |
roadAddrPart2 | String | N | 도로명주소 참고항목 |
jibunAddr | String | Y | 지번주소 |
engAddr | String | Y | 도로명주소(영문) |
zipNo | String | Y | 우편번호 |
addrDetail | String | N | 고객 입력 상세 주소 |
admCd | String | Y | 행정구역코드 |
rnMgtSn | String | Y | 도로명코드 |
bdMgtSn | String | Y | 건물관리번호 |
detBdNmList | String | N | 상세건물명 |
bdNm | String | N | 건물명 |
bdKdcd | String | Y | 공동주택여부(1 : 공동주택, 0 : 비공동주택) |
siNm | String | Y | 시도명 |
sggNm | String | Y | 시군구명 |
emdNm | String | Y | 읍면동명 |
liNm | String | N | 법정리명 |
rn | String | Y | 도로명 |
udrtYn | String | Y | 지하여부(0 : 지상, 1 : 지하) |
buldMnnm | Number | Y | 건물본번 |
buldSlno | Number | Y | 건물부번 |
mtYn | String | Y | 산여부(0 : 대지, 1 : 산) |
lnbrMnnm | Number | Y | 지번본번(번지) |
lnbrSlno | Number | Y | 지번부번(호) |
emdNo | String | Y | 읍면동일련번호 |
오류코드
오류메세지 | 조치방법 |
---|---|
시스템에러 | 도로명주소 도움센터로 문의하시기 바랍니다. |
승인되지 않은 KEY 입니다. | 정확한 승인키를 입력하세요.(검색API 승인키 사용불가) |
정상적인 경로로 접속하시기 바랍니다. | 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요. |
검색어가 입력되지 않았습니다. | 검색어를 입력해주세요. |
주소를 상세히 입력해 주시기 바랍니다. | 시도명으로는 검색이 불가합니다. |
검색어는 두글자 이상 입력되어야 합니다. | 한 글자만으로는 검색이 불가합니다. |
검색어는 문자와 숫자 같이 입력되어야 합니다. | 숫자만으로는 검색이 불가합니다. |
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) | 80글자를 초과한 검색어는 검색이 불가합니다. |
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) | 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다. |
특수문자+숫자만으로는 검색이 불가능 합니다. | 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다. |
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. | SQL예약어 또는 특수문자를 제거 후 검색합니다. |
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. | 개발승인키를 다시 발급받아 API서비스를 호출합니다. |
검색 범위를 초과하였습니다. | 검색결과가 9천건이 초과하는 검색은 불가합니다. |
주소입력화면 소스보기
/*
파일명 : Sample.jsp
내 용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("팝업API 호출 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";
function goPopup(){
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes");
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
//var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
}
/** API 서비스 제공항목 확대 (2017.02) **/
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, emdNo){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
document.form.roadAddrPart1.value = roadAddrPart1;
document.form.roadAddrPart2.value = roadAddrPart2;
document.form.addrDetail.value = addrDetail;
document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
<table >
<colgroup>
<col style="width:20%"><col>
</colgroup>
<tbody>
<tr>
<th>우편번호</th>
<td>
<input type="hidden" id="confmKey" name="confmKey" value="" >
<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
<input type="button" value="주소검색" onclick="goPopup();">
</td>
</tr>
<tr>
<th>도로명주소</th>
<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
</tr>
<tr>
<th>상세주소</th>
<td>
<input type="text" id="addrDetail" style="width:40%" value="">
<input type="text" id="roadAddrPart2" style="width:40%" value="">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
팝업API 호출 소스보기
/*
파일명 : jusoPopup.jsp
내 용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다.
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn");
String roadFullAddr = request.getParameter("roadFullAddr");
String roadAddrPart1 = request.getParameter("roadAddrPart1");
String roadAddrPart2 = request.getParameter("roadAddrPart2");
String engAddr = request.getParameter("engAddr");
String jibunAddr = request.getParameter("jibunAddr");
String zipNo = request.getParameter("zipNo");
String addrDetail = request.getParameter("addrDetail");
String admCd = request.getParameter("admCd");
String rnMgtSn = request.getParameter("rnMgtSn");
String bdMgtSn = request.getParameter("bdMgtSn");
/** API 서비스 제공항목 확대 (2017.02) **/
String detBdNmList = request.getParameter("detBdNmList");
String bdNm = request.getParameter("bdNm");
String bdKdcd = request.getParameter("bdKdcd");
String siNm = request.getParameter("siNm");
String sggNm = request.getParameter("sggNm");
String emdNm = request.getParameter("emdNm");
String liNm = request.getParameter("liNm");
String rn = request.getParameter("rn");
String udrtYn = request.getParameter("udrtYn");
String buldMnnm = request.getParameter("buldMnnm");
String buldSlno = request.getParameter("buldSlno");
String mtYn = request.getParameter("mtYn");
String lnbrMnnm = request.getParameter("lnbrMnnm");
String lnbrSlno = request.getParameter("lnbrSlno");
String emdNo = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
//opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";
function init(){
var url = location.href;
var confmKey = "TESTJUSOGOKR";//승인키
// resultType항목 추가(2016.10.06)
var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){
document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url;
document.form.resultType.value = resultType; // resultType항목 추가(2016.10.06)
document.form.action="https://business.juso.go.kr/addrlink/addrLinkUrl.do"; // 인터넷망
//document.form.action="https://business.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망
document.form.submit();
}else{
/** API 서비스 제공항목 확대 (2017.02) **/
opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
window.close();
}
}
</script>
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/> // resultType항목 추가(2016.10.06)
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
-->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form>
</body>
</html>
- CSS 다운로드
- 웹
CSS파일 소스보기(웹)
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }
/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
API정보
호출방식 | 요청 URL | 출력결과 |
---|---|---|
POST GET |
https://business.juso.go.kr/addrlink/addrEngUrl.do | 파라미터 |
요청변수
요청변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
confmKey | String | Y | 신청시 발급받은 승인키 |
returnUrl | String | Y | 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지) |
resultType | String | N | 도로명주소 검색결과 화면 출력유형 (1 : 도로명, 2 : 도로명+지번) |
출력결과
출력변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
roadFullAddr | String | Y | 전체 영문 도로명주소 |
roadAddr | String | Y | 영문 도로명주소 |
jibunAddr | String | Y | 영문 지번주소 |
zipNo | String | Y | 우편번호 |
addrDetail | String | N | 고객 입력 상세 주소 |
admCd | String | Y | 행정구역코드 |
rnMgtSn | String | Y | 도로명코드 |
bdKdcd | String | Y | 공동주택여부(1 : 공동주택, 0 : 비공동주택) |
siNm | String | Y | 영문 시도명 |
sggNm | String | Y | 영문 시군구명 |
emdNm | String | Y | 영문 읍면동명 |
liNm | String | N | 영문 법정리명 |
rn | String | Y | 영문 도로명 |
udrtYn | String | Y | 지하여부(0 : 지상, 1 : 지하) |
buldMnnm | Number | Y | 건물본번 |
buldSlno | Number | Y | 건물부번 |
mtYn | String | Y | 산여부(0 : 대지, 1 : 산) |
lnbrMnnm | Number | Y | 지번본번(번지) |
lnbrSlno | Number | Y | 지번부번(호) |
korAddr | String | Y | 도로명주소(한글) |
오류코드
오류메세지 | 조치방법 |
---|---|
시스템에러 | 도로명주소 도움센터로 문의하시기 바랍니다. |
승인되지 않은 KEY 입니다. | 정확한 승인키를 입력하세요.(검색API 승인키 사용불가) |
Please connect us with a normal route. | 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요. |
No search word has been entered. | 검색어를 입력해주세요. |
Please enter your address in detail. | 시도명으로는 검색이 불가합니다. |
Address entered too short. | 한 글자만으로는 검색이 불가합니다. |
It is not possible to search by address only number. | 숫자만으로는 검색이 불가합니다. |
Address entered too long. | 80글자를 초과한 검색어는 검색이 불가합니다. |
Long numbers are included. | 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다. |
Can not search special characters + numbers. | 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다. |
Can not search SQL & special characters(%,=,>,<,[,]). | SQL예약어 또는 특수문자를 제거 후 검색합니다. |
The authorization key preiod has expired. | 개발승인키를 다시 발급받아 API서비스를 호출합니다. |
The search range has been exceeded. | 검색결과가 9천건이 초과하는 검색은 불가합니다. |
주소입력화면 소스보기
/*
파일명 : Sample.jsp
내 용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrEngUrl.do)를 호출하게 됩니다.
var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes");
}
function jusoCallBack(roadFullAddr, roadAddr, addrDetail, jibunAddr, zipNo, admCd, rnMgtSn
, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, korAddr){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
document.form.roadAddr.value = roadAddr;
document.form.addrDetail.value = addrDetail;
document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
<table >
<colgroup>
<col style="width:20%"><col>
</colgroup>
<tbody>
<tr>
<th>우편번호</th>
<td>
<input type="hidden" id="confmKey" name="confmKey" value="" >
<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
<input type="button" value="주소검색" onclick="goPopup();">
</td>
</tr>
<tr>
<th>도로명주소</th>
<td><input type="text" id="roadAddr" style="width:85%"></td>
</tr>
<tr>
<th>상세주소</th>
<td><input type="text" id="addrDetail" style="width:85%" ></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
팝업API 호출 소스보기
/*
파일명 : jusoPopup.jsp
내 용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다.
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn");
String roadFullAddr = request.getParameter("roadFullAddr");
String roadAddr = request.getParameter("roadAddr");
String jibunAddr = request.getParameter("jibunAddr");
String zipNo = request.getParameter("zipNo");
String addrDetail = request.getParameter("addrDetail");
String admCd = request.getParameter("admCd");
String rnMgtSn = request.getParameter("rnMgtSn");
String bdKdcd = request.getParameter("bdKdcd");
String siNm = request.getParameter("siNm");
String sggNm = request.getParameter("sggNm");
String emdNm = request.getParameter("emdNm");
String liNm = request.getParameter("liNm");
String rn = request.getParameter("rn");
String udrtYn = request.getParameter("udrtYn");
String buldMnnm = request.getParameter("buldMnnm");
String buldSlno = request.getParameter("buldSlno");
String mtYn = request.getParameter("mtYn");
String lnbrMnnm = request.getParameter("lnbrMnnm");
String lnbrSlno = request.getParameter("lnbrSlno");
String korAddr = request.getParameter("korAddr");
%>
</head>
<script language="javascript">
function init(){
var url = location.href;
var confmKey = "TESTJUSOGOKR";//승인키
var resultType = "2"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번
var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){
document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url;
document.form.resultType.value = resultType;
document.form.action="https://business.juso.go.kr/addrlink/addrEngUrl.do"; // 인터넷망
document.form.submit();
}else{
opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddr%>","<%=addrDetail%>"
, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>"
, "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=korAddr%>");
window.close();
}
}
</script>
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/>
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
-->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form>
</body>
</html>
- CSS 다운로드
- 웹
CSS파일 소스보기(웹)
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }
/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
API정보
호출방식 | 요청 URL | 출력결과 |
---|---|---|
POST GET |
https://business.juso.go.kr/addrlink/addrCoordUrl.do | 파라미터 |
요청변수
요청변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
confmKey | String | Y | 신청시 발급받은 승인키 |
returnUrl | String | Y | 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지) |
resultType | String | N | 도로명주소 검색결과 화면 출력유형 (1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명) |
useDetailAddr | String | N | 상세주소 동/층/호정보 제공여부 Y : 제공, N : 미제공(직접입력) ※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다. |
출력결과
출력변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
roadFullAddr | String | Y | 전체 도로명주소 |
roadAddrPart1 | String | Y | 도로명주소(참고항목 제외) |
roadAddrPart2 | String | N | 도로명주소 참고항목 |
jibunAddr | String | Y | 지번주소 |
engAddr | String | Y | 도로명주소(영문) |
zipNo | String | Y | 우편번호 |
addrDetail | String | N | 고객 입력 상세 주소 |
admCd | String | Y | 행정구역코드 |
rnMgtSn | String | Y | 도로명코드 |
bdMgtSn | String | Y | 건물관리번호 |
detBdNmList | String | N | 상세건물명 |
bdNm | String | N | 건물명 |
bdKdcd | String | Y | 공동주택여부(1 : 공동주택, 0 : 비공동주택) |
siNm | String | Y | 시도명 |
sggNm | String | Y | 시군구명 |
emdNm | String | Y | 읍면동명 |
liNm | String | N | 법정리명 |
rn | String | Y | 도로명 |
udrtYn | String | Y | 지하여부(0 : 지상, 1 : 지하) |
buldMnnm | Number | Y | 건물본번 |
buldSlno | Number | Y | 건물부번 |
mtYn | String | Y | 산여부(0 : 대지, 1 : 산) |
lnbrMnnm | Number | Y | 지번본번(번지) |
lnbrSlno | Number | Y | 지번부번(호) |
emdNo | String | Y | 읍면동일련번호 |
entX | String | Y | X좌표 |
entY | String | Y | Y좌표 |
오류코드
오류메세지 | 조치방법 |
---|---|
시스템에러 | 도로명주소 도움센터로 문의하시기 바랍니다. |
승인되지 않은 KEY 입니다. | 정확한 승인키를 입력하세요.(검색API 승인키 사용불가) |
정상적인 경로로 접속하시기 바랍니다. | 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요. |
검색어가 입력되지 않았습니다. | 검색어를 입력해주세요. |
주소를 상세히 입력해 주시기 바랍니다. | 시도명으로는 검색이 불가합니다. |
검색어는 두글자 이상 입력되어야 합니다. | 한 글자만으로는 검색이 불가합니다. |
검색어는 문자와 숫자 같이 입력되어야 합니다. | 숫자만으로는 검색이 불가합니다. |
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) | 80글자를 초과한 검색어는 검색이 불가합니다. |
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) | 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다. |
특수문자+숫자만으로는 검색이 불가능 합니다. | 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다. |
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. | SQL예약어 또는 특수문자를 제거 후 검색합니다. |
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. | 개발승인키를 다시 발급받아 API서비스를 호출합니다. |
검색 범위를 초과하였습니다. | 검색결과가 9천건이 초과하는 검색은 불가합니다. |
주소입력화면 소스보기
/*
파일명 : Sample.jsp
내 용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrCoordUrl.do)를 호출하게 됩니다.
var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes");
}
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno
, emdNo, entX, entY){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
document.form.roadAddrPart1.value = roadAddrPart1;
document.form.roadAddrPart2.value = roadAddrPart2;
document.form.addrDetail.value = addrDetail;
document.form.zipNo.value = zipNo;
document.form.entX.value = entX;
document.form.entY.value = entY;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
<table >
<colgroup>
<col style="width:20%"><col>
</colgroup>
<tbody>
<tr>
<th>우편번호</th>
<td>
<input type="hidden" id="confmKey" name="confmKey" value="" >
<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
<input type="button" value="주소검색" onclick="goPopup();">
</td>
</tr>
<tr>
<th><label>도로명주소</label></th>
<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
</tr>
<tr>
<th>상세주소</th>
<td>
<input type="text" id="addrDetail" style="width:40%" value="">
<input type="text" id="roadAddrPart2" style="width:40%" value="">
</td>
</tr>
<tr>
<th>좌표정보</th>
<td>
<input type="text" id="entX" style="width:40%" value="">
<input type="text" id="entY" style="width:40%" value="">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
팝업API 호출 소스보기
/*
파일명 : jusoPopup.jsp
내 용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다.
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn");
String roadFullAddr = request.getParameter("roadFullAddr");
String roadAddrPart1 = request.getParameter("roadAddrPart1");
String roadAddrPart2 = request.getParameter("roadAddrPart2");
String engAddr = request.getParameter("engAddr");
String jibunAddr = request.getParameter("jibunAddr");
String zipNo = request.getParameter("zipNo");
String addrDetail = request.getParameter("addrDetail");
String admCd = request.getParameter("admCd");
String rnMgtSn = request.getParameter("rnMgtSn");
String bdMgtSn = request.getParameter("bdMgtSn");
String detBdNmList = request.getParameter("detBdNmList");
String bdNm = request.getParameter("bdNm");
String bdKdcd = request.getParameter("bdKdcd");
String siNm = request.getParameter("siNm");
String sggNm = request.getParameter("sggNm");
String emdNm = request.getParameter("emdNm");
String liNm = request.getParameter("liNm");
String rn = request.getParameter("rn");
String udrtYn = request.getParameter("udrtYn");
String buldMnnm = request.getParameter("buldMnnm");
String buldSlno = request.getParameter("buldSlno");
String mtYn = request.getParameter("mtYn");
String lnbrMnnm = request.getParameter("lnbrMnnm");
String lnbrSlno = request.getParameter("lnbrSlno");
String emdNo = request.getParameter("emdNo");
String entX = request.getParameter("entX");
String entY = request.getParameter("entY");
%>
</head>
<script language="javascript">
function init(){
var url = location.href;
var confmKey = "TESTJUSOGOKR";//승인키
var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){
document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url;
document.form.resultType.value = resultType;
document.form.action="https://business.juso.go.kr/addrlink/addrCoordUrl.do"; // 인터넷망
document.form.submit();
}else{
opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>", "<%=entX%>", "<%=entY%>");
window.close();
}
}
</script>
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/>
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
-->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form>
</body>
</html>
- CSS 다운로드
- 웹
CSS파일 소스보기(웹)
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }
/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
모바일 팝업 API 화면예시(스마트폰과 태블릿)
샘플소스 및 다운로드 지원
API정보
호출방식 | 요청 URL | 출력결과 |
---|---|---|
POST GET |
https://business.juso.go.kr/addrlink/addrMobileLinkUrl.do | 파라미터 |
요청변수
요청변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
confmKey | String | Y | 신청시 발급받은 승인키 |
returnUrl | String | Y | 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지) |
resultType | String | N | 도로명주소 검색결과 화면 출력유형 (1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명) |
useDetailAddr | String | N | 상세주소 동/층/호정보 제공여부 Y : 제공, N : 미제공(직접입력) ※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다. |
출력결과
출력변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
roadFullAddr | String | Y | 전체 도로명주소 |
roadAddrPart1 | String | Y | 도로명주소(참고항목 제외) |
roadAddrPart2 | String | N | 도로명주소 참고항목 |
jibunAddr | String | Y | 지번주소 |
engAddr | String | Y | 도로명주소(영문) |
zipNo | String | Y | 우편번호 |
addrDetail | String | N | 고객 입력 상세 주소 |
admCd | String | Y | 행정구역코드 |
rnMgtSn | String | Y | 도로명코드 |
bdMgtSn | String | Y | 건물관리번호 |
detBdNmList | String | N | 상세건물명 |
bdNm | String | N | 건물명 |
bdKdcd | String | Y | 공동주택여부(1 : 공동주택, 0 : 비공동주택) |
siNm | String | Y | 시도명 |
sggNm | String | Y | 시군구명 |
emdNm | String | Y | 읍면동명 |
liNm | String | N | 법정리명 |
rn | String | Y | 도로명 |
udrtYn | String | Y | 지하여부(0 : 지상, 1 : 지하) |
buldMnnm | Number | Y | 건물본번 |
buldSlno | Number | Y | 건물부번 |
mtYn | String | Y | 산여부(0 : 대지, 1 : 산) |
lnbrMnnm | Number | Y | 지번본번(번지) |
lnbrSlno | Number | Y | 지번부번(호) |
emdNo | String | Y | 읍면동일련번호 |
오류코드
오류메세지 | 조치방법 |
---|---|
시스템에러 | 도로명주소 도움센터로 문의하시기 바랍니다. |
승인되지 않은 KEY 입니다. | 정확한 승인키를 입력하세요.(검색API 승인키 사용불가) |
정상적인 경로로 접속하시기 바랍니다. | 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요. |
검색어가 입력되지 않았습니다. | 검색어를 입력해주세요. |
주소를 상세히 입력해 주시기 바랍니다. | 시도명으로는 검색이 불가합니다. |
검색어는 두글자 이상 입력되어야 합니다. | 한 글자만으로는 검색이 불가합니다. |
검색어는 문자와 숫자 같이 입력되어야 합니다. | 숫자만으로는 검색이 불가합니다. |
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) | 80글자를 초과한 검색어는 검색이 불가합니다. |
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) | 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다. |
특수문자+숫자만으로는 검색이 불가능 합니다. | 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다. |
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. | SQL예약어 또는 특수문자를 제거 후 검색합니다. |
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. | 개발승인키를 다시 발급받아 API서비스를 호출합니다. |
검색 범위를 초과하였습니다. | 검색결과가 9천건이 초과하는 검색은 불가합니다. |
주소입력화면 소스보기
/*
파일명 : Sample.jsp
내 용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("팝업API 호출 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";
function goPopup(){
// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes");
}
/** API 서비스 제공항목 확대 (2017.02) **/
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, emdNo){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
document.form.roadAddrPart1.value = roadAddrPart1;
document.form.roadAddrPart2.value = roadAddrPart2;
document.form.addrDetail.value = addrDetail;
document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
<table >
<colgroup>
<col style="width:20%"><col>
</colgroup>
<tbody>
<tr>
<th>우편번호</th>
<td>
<input type="hidden" id="confmKey" name="confmKey" value="" >
<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
<input type="button" value="주소검색" onclick="goPopup();">
</td>
</tr>
<tr>
<th><label>도로명주소</label></th>
<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
</tr>
<tr>
<th>상세주소</th>
<td>
<input type="text" id="addrDetail" style="width:40%" value="">
<input type="text" id="roadAddrPart2" style="width:40%" value="">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
팝업API 호출 소스보기
/*
파일명 : jusoPopup.jsp
내 용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다.
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn");
String roadFullAddr = request.getParameter("roadFullAddr");
String roadAddrPart1 = request.getParameter("roadAddrPart1");
String roadAddrPart2 = request.getParameter("roadAddrPart2");
String engAddr = request.getParameter("engAddr");
String jibunAddr = request.getParameter("jibunAddr");
String zipNo = request.getParameter("zipNo");
String addrDetail = request.getParameter("addrDetail");
String admCd = request.getParameter("admCd");
String rnMgtSn = request.getParameter("rnMgtSn");
String bdMgtSn = request.getParameter("bdMgtSn");
/** API 서비스 제공항목 확대 (2017.02) **/
String detBdNmList = request.getParameter("detBdNmList");
String bdNm = request.getParameter("bdNm");
String bdKdcd = request.getParameter("bdKdcd");
String siNm = request.getParameter("siNm");
String sggNm = request.getParameter("sggNm");
String emdNm = request.getParameter("emdNm");
String liNm = request.getParameter("liNm");
String rn = request.getParameter("rn");
String udrtYn = request.getParameter("udrtYn");
String buldMnnm = request.getParameter("buldMnnm");
String buldSlno = request.getParameter("buldSlno");
String mtYn = request.getParameter("mtYn");
String lnbrMnnm = request.getParameter("lnbrMnnm");
String lnbrSlno = request.getParameter("lnbrSlno");
String emdNo = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";
function init(){
var url = location.href;
var confmKey = "TESTJUSOGOKR";//승인키
// resultType항목 추가(2016.10.06)
var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){
document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url;
document.form.resultType.value = resultType; // resultType항목 추가(2016.10.06)
document.form.action="https://business.juso.go.kr/addrlink/addrMobileLinkUrl.do"; // 모바일 웹인 경우, 인터넷망
document.form.submit();
}else{
/** API 서비스 제공항목 확대 (2017.02) **/
opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
window.close();
}
}
</script>
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/> // resultType항목 추가(2016.10.06)
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
-->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form>
</body>
</html>
CSS파일 소스보기(모바일)
/* 회사 로고 이미지 */
#logo span{background: url(http://www.0000.com/img/logo.png) 0 0 no-repeat; background-size: contain;}
/* 바탕 배경색상*/
body{background-color: #373737;}
#wrap {background-color: #fff;}
/* 검색도움말 색상 */
#search p{color:#3e566d;}
/* 검색창 배경 색상 */
#header{background-color: #e9e9e9;}
/* 도로명 아이콘 수정 */
.icon_road >span{border: 1px solid #186bb9; background-color: #186bb9; color:#fff;}
/* 지번 아이콘 수정 */
.icon_juso >span{border:1px solid #282828; background-color: #fff; color:#282828;}
/* 하단버튼 */
#address_detail input[type="button"] {border: 1px solid #186bb9; background-color: #186bb9; color:#fff;}
/* 페이지 선택된 페이지 버튼*/
.page_num a{background-color: #fff; color:#101010;}
/* 페이지 선택되지 않은 페이지 버튼*/
.page_num strong{background-color: #186bb9; color:#fff;}
팝업API를 활용하여 주소검색 이후, 상세주소를 선택할 수 있는 동.층.호 정보를 제공합니다.
도로명주소 팝업API, 좌표제공 팝업API, 모바일용API에서 요청변수를 추가하여 적용할 수 있습니다.
상세주소 팝업 API 화면예시
상세주소 팝업API 적용 전 | 상세주소 팝업API 적용 후 |
---|---|
상세주소 팝업 API 적용방법
상세주소 팝업API 적용방법
첫번째, 오픈API 신규 사용자의 경우 'API신청하기'메뉴에서 API종류(도로명주소API 또는 좌표제공API), API유형(팝업API 또는 모바일팝업API)를 선택하여 신청
두번째, 도로명주소API 또는 좌표제공API 메뉴에서 제공하는 가이드 및 소스를 활용하여 적용
세번째, 샘플소스(jusoPopup.jsp / jusoPopup.asp / jusoPopup.php)파일의 form태그에 요청변수(useDetailAddr) 추가
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/>
<input type="hidden" id="useDetailAddr" name="useDetailAddr" value="Y"/><!-- 요청 변수 추가 (상세주소API 사용여부) -->
</form>
</body>
API정보
호출방식 | 요청 URL | 출력결과 |
---|---|---|
POST GET |
https://business.juso.go.kr/addrlink/addrMapUrl.do | 파라미터 |
요청변수
요청변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
confmKey | String | Y | 신청시 발급받은 승인키 |
returnUrl | String | Y | 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지) |
resultType | String | N | 도로명주소 검색결과 화면 출력유형 1 : 도로명, 2 : 도로명+지번 |
출력결과
출력변수명 | 타입 | 필수여부 | 설명 |
---|---|---|---|
roadFullAddr | String | Y | 전체 도로명주소 |
roadAddrPart1 | String | Y | 도로명주소(참고항목 제외) |
roadAddrPart2 | String | N | 도로명주소 참고항목 |
jibunAddr | String | Y | 지번주소 |
engAddr | String | Y | 도로명주소(영문) |
zipNo | String | Y | 우편번호 |
addrDetail | String | N | 고객 입력 상세 주소 |
admCd | String | Y | 행정구역코드 |
rnMgtSn | String | Y | 도로명코드 |
bdMgtSn | String | Y | 건물관리번호 |
detBdNmList | String | N | 상세건물명 |
bdNm | String | N | 건물명 |
bdKdcd | String | Y | 공동주택여부(1 : 공동주택, 0 : 비공동주택) |
siNm | String | Y | 시도명 |
sggNm | String | Y | 시군구명 |
emdNm | String | Y | 읍면동명 |
liNm | String | N | 법정리명 |
rn | String | Y | 도로명 |
udrtYn | String | Y | 지하여부(0 : 지상, 1 : 지하) |
buldMnnm | Number | Y | 건물본번 |
buldSlno | Number | Y | 건물부번 |
mtYn | String | Y | 산여부(0 : 대지, 1 : 산) |
lnbrMnnm | Number | Y | 지번본번(번지) |
lnbrSlno | Number | Y | 지번부번(호) |
emdNo | String | Y | 읍면동일련번호 |
오류코드
오류메세지 | 조치방법 |
---|---|
시스템에러 | 도로명주소 도움센터로 문의하시기 바랍니다. |
승인되지 않은 KEY 입니다. | 정확한 승인키를 입력하세요.(검색API 승인키 사용불가) |
정상적인 경로로 접속하시기 바랍니다. | 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요. |
검색어가 입력되지 않았습니다. | 검색어를 입력해주세요. |
주소를 상세히 입력해 주시기 바랍니다. | 시도명으로는 검색이 불가합니다. |
검색어는 두글자 이상 입력되어야 합니다. | 한 글자만으로는 검색이 불가합니다. |
검색어는 문자와 숫자 같이 입력되어야 합니다. | 숫자만으로는 검색이 불가합니다. |
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) | 80글자를 초과한 검색어는 검색이 불가합니다. |
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) | 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다. |
특수문자+숫자만으로는 검색이 불가능 합니다. | 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다. |
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. | SQL예약어 또는 특수문자를 제거 후 검색합니다. |
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. | 개발승인키를 다시 발급받아 API서비스를 호출합니다. |
검색 범위를 초과하였습니다. | 검색결과가 9천건이 초과하는 검색은 불가합니다. |
주소입력화면 소스보기
/*
파일명 : Sample.jsp
내 용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
// 호출된 페이지(jusoPopup.jsp)에서 실제 주소검색URL(https://business.juso.go.kr/addrlink/addrMapUrl.do)를 호출하게 됩니다.
var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes");
}
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno
, emdNo){
// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
document.form.roadAddrPart1.value = roadAddrPart1;
document.form.roadAddrPart2.value = roadAddrPart2;
document.form.addrDetail.value = addrDetail;
document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
<table >
<colgroup>
<col style="width:20%"><col>
</colgroup>
<tbody>
<tr>
<th>우편번호</th>
<td>
<input type="hidden" id="confmKey" name="confmKey" value="" >
<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
<input type="button" value="주소검색" onclick="goPopup();">
</td>
</tr>
<tr>
<th><label>도로명주소</label></th>
<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
</tr>
<tr>
<th>상세주소</th>
<td>
<input type="text" id="addrDetail" style="width:40%" value="">
<input type="text" id="roadAddrPart2" style="width:40%" value="">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
팝업API 호출 소스보기
/*
파일명 : jusoPopup.jsp
내 용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다.
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//request.setCharacterEncoding("UTF-8"); //한글깨지면 주석제거
//request.setCharacterEncoding("EUC-KR"); //해당시스템의 인코딩타입이 EUC-KR일경우에
String inputYn = request.getParameter("inputYn");
String roadFullAddr = request.getParameter("roadFullAddr");
String roadAddrPart1 = request.getParameter("roadAddrPart1");
String roadAddrPart2 = request.getParameter("roadAddrPart2");
String engAddr = request.getParameter("engAddr");
String jibunAddr = request.getParameter("jibunAddr");
String zipNo = request.getParameter("zipNo");
String addrDetail = request.getParameter("addrDetail");
String admCd = request.getParameter("admCd");
String rnMgtSn = request.getParameter("rnMgtSn");
String bdMgtSn = request.getParameter("bdMgtSn");
String detBdNmList = request.getParameter("detBdNmList");
String bdNm = request.getParameter("bdNm");
String bdKdcd = request.getParameter("bdKdcd");
String siNm = request.getParameter("siNm");
String sggNm = request.getParameter("sggNm");
String emdNm = request.getParameter("emdNm");
String liNm = request.getParameter("liNm");
String rn = request.getParameter("rn");
String udrtYn = request.getParameter("udrtYn");
String buldMnnm = request.getParameter("buldMnnm");
String buldSlno = request.getParameter("buldSlno");
String mtYn = request.getParameter("mtYn");
String lnbrMnnm = request.getParameter("lnbrMnnm");
String lnbrSlno = request.getParameter("lnbrSlno");
String emdNo = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
function init(){
var url = location.href;
var confmKey = "TESTJUSOGOKR";//승인키
var resultType = "2"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번
var inputYn= "<%=inputYn%>";
if(inputYn != "Y"){
document.form.confmKey.value = confmKey;
document.form.returnUrl.value = url;
document.form.resultType.value = resultType;
document.form.action="https://business.juso.go.kr/addrlink/addrMapUrl.do"; // 인터넷망
document.form.submit();
}else{
opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
window.close();
}
}
</script>
<body onload="init();">
<form id="form" name="form" method="post">
<input type="hidden" id="confmKey" name="confmKey" value=""/>
<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
<input type="hidden" id="resultType" name="resultType" value=""/>
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START-->
<!--
<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
-->
<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
</form>
</body>
</html>
- CSS 다운로드
- 웹
CSS파일 소스보기(웹)
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }
/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 바탕 배경색상 */
.pop-address-search .pop-address-search-inner .search-wrap { background-color:#DCF3F4; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}