14. 도로명 주소
가. 도로명 주소 사이트
- 행정자치부 http://www.judo.go.kr
- 개발자센터에서 API 신청 가능
https://www.juso.go.kr/addrlink/devAddrLinkRequestWrite.do?returnFn=write&cntcMenu=URL
나. 우편번호, 주소 서비스 방법
1) 직접 구축
209년 4월 현재 건물 DB 다운로드 141MB, 압축풀면 1.72GB
https://www.juso.go.kr/addrlink/addressBuildDevNew.do?menu=mainJusoDb
- 예를 들어 세종시 자료를 엑셀에서 읽어들임(구분자:|)
- 텍스트 파일을 엑셀로 읽어서 (구분자 |) csv로 변환한 후 필요한 컬럼만 선택한 후 저장
위의 주소로 다운로드 받고 압축해제한다.
build_sejong.txt을 엑셀로 열어본다.
원본파일: Windows (ANSI)로 하고
구분기호에서 탭 체크해제, 기타체크 하이픈('|') 입력 - 다음 - 마침
- 데이터를 import할 테이블을 미리 생성한 후
- SQL Developer에서 import하여 테이블로 저장
- 단점은 용량도 커서 비용이 많이 들고 업데이트 되면 다시 작업을 해줘야 한다.
2) API 사용
* 다음 API
- http://postcode.map.daum.net/guide
키를 발급 받을 필요가 없다.
다. 실습예제
1) menu.jsp
<a href="${path}/member/address.do">도로명 주소</a>
2) MemberController.java 에 method 추가
@RequestMapping("address.do")
public String address() {
return "member/join";
}
3) join.jsp
우편번호 : <input type="text" id="post_code" name="zipcode" readonly size="10">
<input type="button" onclick="showPostcode()" value="우편번호 찾기">
주소 : <input type="text" id="address1" name="address1" size="50">
상세주소: <input type="text" id="address2" name="address2">
스크립트 입력
<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>
function showPostcode() {
alert();
new daum.Postcode({
oncomplete : function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로 이를 참고하여 분기한다.
var fullAddr = ''; // 최종 주소 변수
var extraAddr = ''; // 조합형 주소 변수
// 사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
if(data.userSelectedType === 'R') {
// 사용자가 도로명 주소를 선택
fullAddr = data.roadAddress;
} else { // 지번 주소 선택 (J)
fullAddr = data.jibunAddress;
}
// 사용자가 선택한 주소가 도로명 타입일때 조합한다.
if(data.userSelectedType === 'R') {
// 법정동명이 있을 경우 추가한다.
if(data.bname !== '') { extraAddr += data.bname; }
// 건물명이 있을 경우 추가한다.
if(data.buildingName !== '') {
extraAddr += (extraAddr !== '' ? ', '+data.buildingName : data.buildingName );
}
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ') ' : '');
}
// 우편번호와 주소정보를 해당 필드에 넣는다. 5자리 새 우편번호 사용
document.getElementById('post_code').value = data.zonecode;
document.getElementById('address1').value = fullAddr;
// 커서를 상세주소 필드로 이동한다.
document.getElementById('address2').focus();
}
}).open();
}
'프로그래밍 > JAVA & SPRING' 카테고리의 다른 글
[LifeSoft] spring 30강 Spring Security (0) | 2020.06.07 |
---|---|
[LifeSoft] spring 25강 Spring Boot와 Oracle 연동, Thymeleaf Template 적용 (0) | 2020.06.07 |
[LifeSoft] spring 23강 게시판 만들기4( 게시물 수정, 파일 첨부, 첨부파일 삭제, 게시물 삭제) (0) | 2020.06.07 |
[LifeSoft] spring 22강 게시판만들기3 (상세화면, 댓글쓰기/댓글목록/댓글갯수) (0) | 2020.06.07 |
[LifeSoft] spring 22강 게시판만들기3 (상세화면, 댓글쓰기/댓글목록/댓글갯수) (0) | 2020.06.07 |