예전에는 주소 검색을 할때, 자체적으로 구현했었다.
그게 관리하기도 편하고, 한번 작업해 놓으면 그다지 바뀔일도 없어서, 기존에 쓴 소스를 계속 쓰면 되니까, 그다지 문제 될게 없었다.
근데... 요즘은 좀 문제가 되는게...
일단 도로명 주소가 문제다.
이제는 도로명 주소검색이 기본적으로 지원이 되어야 하고, 거기다 기존 주소 검색도 없으면 또 안되니까...
그 2가지 기능을 구현해 놓는것도 문제지만, 주소 데이터가 기존 주소 데이터만으로도 제법 되는데, 도로명 주소까지 해놓으면 제법 상당한 데이터가 된다.
당연히 검색하는데도 제법 시간이 걸린다.
그래서 요즘은 그냥 Open Api 를 활용해 주소 검색을 처리한다.
뭐... 외부 시스템을 쓴다는게 약간 찜찜한게 없는건 아니지만, 괜히 쓸데 없는데 공수를 투입하는것 보다 쓸수 있는게 있다면 쓰는게 났다.
하여간, 주소 검색 Open Api 는 제법 있지만, 나의 경우는 그 중에서 제일 쓰기 쉬운 Daum 의 Open Api 를 이용한다.
쓰는 법은 ....
<div id="addlayer" style="display:none;border:5px solid;position:fixed;width:400px;height:500px;left:50%;margin-left:-155px;top:50%;margin-top:-235px;overflow:hidden;-webkit-overflow-scrolling:touch;"> <img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnCloseLayer" style="cursor:pointer;position:absolute;right:-3px;top:-3px" onclick="closeDaumPostcode()" alt="닫기 버튼"> </div> <script src="http://dmaps.daum.net/map_js_init/postcode.js"></script> <script> // 우편번호 찾기 iframe을 넣을 element var element = document.getElementById('addlayer'); function closeDaumPostcode() { // iframe을 넣은 element를 안보이게 한다. element.style.display = 'none'; } function showDaumPostcode() { // iframe을 넣은 element를 보이게 한다. element.style.display = 'block'; new daum.Postcode({ oncomplete: function (data) { // 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 우편번호와 주소 및 영문주소 정보를 해당 필드에 넣는다. document.getElementById('<%= strHomePost1.ClientID %>').value = data.postcode1; document.getElementById('<%= strHomePost2.ClientID %>').value = data.postcode2; document.getElementById('<%= strHomeAddr1.ClientID %>').value = data.address; // iframe을 넣은 element를 안보이게 한다. element.style.display = 'none'; return; }, width: '100%', height: '100%' }).embed(element); } </script>
를 소스에 추가하고....
<span> <a href="javascript:showDaumPostcode();"><img src="../images/member/btn_zip.gif" border="0"alt="우편번호"></a> </span>
로 버튼 클릭을 만들어 놓으면 된다.
그러면....
저기 우편번호 찾기를 클릭시...
팝업창이 뜨고... 그냥 저기다 지번이든, 도로명이든 넣고 검색하면....
지번으로 검색도 되고...
도로명으로도 검색이 된다.