<h2>1. 다음 (카카오) 주소 찾기 API</h2>
<input type="text" id="postCode" placeholder="우편번호">
<input type="button" id="" onclick="addrSearch()" value="우편번호 찾기">
<br>
<input type="text" id="roadAddr" placeholder="도로명주소">
<input type="text" id="jibunAddr" placeholder="지번주소">
<input type="text" id="detailAddr" placeholder="상세주소">
<script
src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
<script>
function addrSearch() {
new daum.Postcode({
oncomplete : function(data) {
document.querySelector('#postCode').value=data.zonecode;
document.querySelector('#roadAddr').value=data.roadAddress;
document.querySelector('#jibunAddr').value=data.jibunAddress;
}
}).open();
}
</script>
<script type="text/javascript"
src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=할당받은ID&submodules=geocoder"></script>
</head>
<body>
<div id="map" style="width: 100%; height: 400px;"></div>
submodules=geocoder
를 삽입해주어야 해당 코드를 사용할수 있다.
var mapOptions = {
center : new naver.maps.LatLng(37.5556, 127.0057), //지도 좌표 설정
zoom : 75, //지도의 초기 줌 레벨
zoomControl : true, //컨트롤러 켜기
zommControlOptions : {
position : naver.maps.Position.TOP_RIGHT,
style : naver.maps.ZoomControlStyle.SMALL
}
};
var map = new naver.maps.Map('map', mapOptions);
var marker = new naver.maps.Marker({
position : new naver.maps.LatLng(37.5556, 127.0057),
map : map
}) //지도에 마커찍기
var contentStr = "";
//지도에 정보창 띄우기
var infowindow = new naver.maps.InfoWindow({ //인포 윈도우 만들기
content : contentStr
});
infowindow.open(map, marker)//인포윈도우 열기
naver.maps.Event.addListener(marker, "click", function(e) {//인포윈도우 키고 닫기
if (infowindow.getMap()) {
infowindow.close();
} else {
infowindow = new naver.maps.InfoWindow({//인포윈도우 새로 만들기
content : contentStr //contentStr 값으로 content값 지정
});
infowindow.open(map, marker);//인포윈도우 열기
}
})
naver.maps.Event.addListener(map, "click", function(e) { //클릭할때마다 그 곳으로 마커가 변하는 함수
marker.setPosition(e.coord) //클릭한 곳의 좌표 코드
if (infowindow.getMap()) {//만약 인포윈도우가 켜져있다면
infowindow.close(); //닫아라
}
naver.maps.Service.reverseGeocode({// Geocode로 주소 가져오기
location : new naver.maps.LatLng(e.coord.lat(),e.coord.lng())
}, function(status, response){
var data = response.result;
var items=data.items;
var address = items[1].address;//주소값
contentStr = "<div><p>"+address+"</p></div>"; // 주소값 str으로 만들기
})
})
naver.maps.Event.addListener(marker, "click", function(e) {//인포윈도우 키고 닫기
if (infowindow.getMap()) {
infowindow.close();
} else {
infowindow = new naver.maps.InfoWindow({//인포윈도우 새로 만들기
content : contentStr //contentStr 값으로 content값 지정
});
infowindow.open(map, marker);//인포윈도우 열기
}
})
naver.maps.Service.reverseGeocode({// Geocode로 주소 가져오기
location : new naver.maps.LatLng(e.coord.lat(),e.coord.lng())
}, function(status, response){
var data = response.result;
var items=data.items;
var address = items[1].address;//주소값
contentStr = "<div><p>"+address+"</p></div>"; // 주소값 str으로 만들기
})
naver.maps.Event.addListener(map, "click", function(e) { //클릭할때마다 그 곳으로 마커가 변하는 함수
marker.setPosition(e.coord) //클릭한 곳의 좌표 코드 설정
if (infowindow.getMap()) {//만약 인포윈도우가 켜져있다면
infowindow.close(); //닫아라
}