searchDetailAddrFromCoords(latitude, longitude, function(result, status) {
alert(status);
if (status === daum.maps.services.Status.OK) {
alert(“2”);
var detailAddr = result[0].address.address_name;
alert(datailAddr);
}
});
function searchDetailAddrFromCoords(latitude, longitude, callback) {
// 주소-좌표 변환 객체를 생성합니다
var geocoder = new daum.maps.services.Geocoder();
// 좌표로 법정동 상세 주소 정보를 요청합니다
geocoder.coord2Address(latitude, longitude, callback);
}
위에 처럼 coord2Address를 사용해서 주소변환을 하고 있는데요.
결과가 항상 ZERO_RESULT로 뜨네요,
제가 뭘 잘못한거 일까요…?
function getLocation() {
if (!navigator.geolocation)
alert(“This browser doesn’t support geolocation”);
else
navigator.geolocation.getCurrentPosition(onPositionReady, onError);
};
function onPositionReady(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var coords = position.coords;
alert(latitude+", "+longitude);
var mapContainer = document.getElementById('curr_map'), // 지도를 표시할 div
mapOption = {
center: new daum.maps.LatLng(latitude, longitude), // 지도의 중심좌표
level: 3 // 지도의 확대 레벨
};
var map = new daum.maps.Map(mapContainer, mapOption); // 지도를 생성합니다
// 마커가 표시될 위치입니다
var markerPosition = new daum.maps.LatLng(latitude, longitude);
// 마커를 생성합니다
var marker = new daum.maps.Marker({
position: markerPosition
});
// 마커가 지도 위에 표시되도록 설정합니다
marker.setMap(map);
// 아래 코드는 지도 위의 마커를 제거하는 코드입니다
// marker.setMap(null);
// 현재 지도 중심좌표로 주소를 검색해서 지도 좌측 상단에 표시합니다
//searchAddrFromCoords(latitude, longitude, displayCenterInfo);
searchDetailAddrFromCoords(latitude, longitude, function(result, status) {
alert(status);
if (status === daum.maps.services.Status.OK) {
alert("2");
var detailAddr = result[0].address.address_name;
alert(datailAddr);
}
});
}
해당 좌표를 넣어서 아래와 같이 실행해봤는데… 경기도 안양시 만안구 안양8동으로 잘 뜹니다.
브라우저 콘솔에 에러메시지나 네트워크에서 요청을 뭐라고 날렸는지 확인해주실수 있나요?
<div class="map_wrap">
<div id="map" style="width:100%;height:100%;position:relative;overflow:hidden;"></div>
<div class="hAddr">
<span class="title">지도중심기준 행정동 주소정보</span>
<span id="centerAddr"></span>
</div>
</div>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new daum.maps.LatLng(37.381101, 126.932280), // 지도의 중심좌표
level: 1 // 지도의 확대 레벨
};
// 지도를 생성합니다
var map = new daum.maps.Map(mapContainer, mapOption);
// 주소-좌표 변환 객체를 생성합니다
var geocoder = new daum.maps.services.Geocoder();
// 현재 지도 중심좌표로 주소를 검색해서 지도 좌측 상단에 표시합니다
searchAddrFromCoords(map.getCenter(), displayCenterInfo);
function searchDetailAddrFromCoords(coords, callback) {
// 좌표로 법정동 상세 주소 정보를 요청합니다
geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
}
// 지도 좌측상단에 지도 중심좌표에 대한 주소정보를 표출하는 함수입니다
function displayCenterInfo(result, status) {
if (status === daum.maps.services.Status.OK) {
var infoDiv = document.getElementById('centerAddr');
for(var i = 0; i < result.length; i++) {
// 행정동의 region_type 값은 'H' 이므로
if (result[i].region_type === 'H') {
infoDiv.innerHTML = result[i].address_name;
break;
}
}
}
}
</script>