다음 우편번호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; } });
</p>
<p> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=키입력&libraries=services"></script></p>
<p> <script src="<a href="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>" target="_blank" rel="noopener noreferrer">http://dmaps.daum.net/map_js_init/postcode.v2.js"></script></a></p>
<p> </p>
<p> </p>
<p><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>
<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" /></p>
<p>
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(); }
답변을 작성하려면 로그인이 필요합니다.
로그인