다음 우편번호api
본문
다음api 우편번호 검색시 wr_5에 도로명주소, wr_6에 지번주소가 정상적으로 잘 들어가는데
다음카카오 지도 API가 바뀌면서부터 주소를바탕으로 wr_7, wr_8 필드에 좌표값이 저장되지않아요.
뭐가문제인지 살펴봐주시면 감사하겠습니다. ㅠ.ㅠ
우편번호 검색시 팝업창이 뜨는데 주소를 선택해도 팝업창이 안닫히디고해요.
gcd.addr2coord(data.jibunAddress, function(status, result) {
if (status === daum.maps.services.Status.OK) {
document.getElementById('posX').value = result.addr[0].lat;
document.getElementById('posY').value = result.addr[0].lng;
}
});
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=키입력&libraries=services"></script>
<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>
<input type="text" id="sample4_postcode" name="wr_4" value="<?php echo $wr_4 ?>" placeholder="우편번호" required class="frm_input required">
<button type="button" class="btn_frmline" onclick="sample4_execDaumPostcode()">우편번호 찾기</button><br /><br />
<input type="text" id="sample4_roadAddress" name="wr_5" value="<?php echo $wr_5 ?>" placeholder="도로명주소" required class="frm_input required" size="35">
<input type="text" id="sample4_jibunAddress" name="wr_6" value="<?php echo $wr_6 ?>" placeholder="지번주소" required class="frm_input required" size="35">
<input type="hidden" name="wr_7" value="<?php echo $wr_7 ?>" id="posX" />
<input type="hidden" name="wr_8" value="<?php echo $wr_8 ?>" id="posY" />
<input type="hidden" name="wr_9" value="<?php echo $wr_9 ?>" id="saddr" />
function sample4_execDaumPostcode() {
new daum.Postcode({
oncomplete: function(data) {
var gcd = new daum.maps.services.Geocoder();
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 도로명 주소의 노출 규칙에 따라 주소를 조합한다.
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
var fullRoadAddr = data.roadAddress; // 도로명 주소 변수
var extraRoadAddr = ''; // 도로명 조합형 주소 변수
// 법정동명이 있을 경우 추가한다. (법정리는 제외)
// 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){
extraRoadAddr += data.bname;
}
// 건물명이 있고, 공동주택일 경우 추가한다.
if(data.buildingName !== '' && data.apartment === 'Y'){
extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName);
}
// 도로명, 지번 조합형 주소가 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
if(extraRoadAddr !== ''){
extraRoadAddr = ' (' + extraRoadAddr + ')';
}
// 도로명, 지번 주소의 유무에 따라 해당 조합형 주소를 추가한다.
if(fullRoadAddr !== ''){
fullRoadAddr += extraRoadAddr;
}
// 우편번호와 주소 정보를 해당 필드에 넣는다.
document.getElementById('sample4_postcode').value = data.zonecode; //5자리 새우편번호 사용
document.getElementById('sample4_roadAddress').value = fullRoadAddr;
document.getElementById('sample4_jibunAddress').value = data.jibunAddress;
document.getElementById('saddr').value = data.sido + ' ' + data.sigungu + ' ' + data.bname;
gcd.addr2coord(data.jibunAddress, function(status, result) {
if (status === daum.maps.services.Status.OK) {
document.getElementById('posX').value = result.addr[0].lat;
document.getElementById('posY').value = result.addr[0].lng;
}
});
// 사용자가 '선택 안함'을 클릭한 경우, 예상 주소라는 표시를 해준다.
if(data.autoRoadAddress) {
//예상되는 도로명 주소에 조합형 주소를 추가한다.
var expRoadAddr = data.autoRoadAddress + extraRoadAddr;
document.getElementById('guide').innerHTML = '(예상 도로명 주소 : ' + expRoadAddr + ')';
} else if(data.autoJibunAddress) {
var expJibunAddr = data.autoJibunAddress;
document.getElementById('guide').innerHTML = '(예상 지번 주소 : ' + expJibunAddr + ')';
} else {
document.getElementById('guide').innerHTML = '';
}
}
}).open();
}