Geocoder를 이용한 좌표 -> 주소 변환 시 SDK와 REST API가 서로 다른 값을 반환

image

위는 SDK의 Geocoder에서의 주소 변환 결과.

{
“meta”:{
“total_count”: 2
},
“documents”:[
{
“region_type”: “B”,
“code”: “3611010100”,
“address_name”: “세종특별자치시 반곡동”,
“region_1depth_name”: “세종특별자치시”,
“region_2depth_name”: “”,
“region_3depth_name”: “반곡동”,
“region_4depth_name”: “”,
“x”: 127.31098283978936,
“y”: 36.49256142836159
},
{
“region_type”: “H”,
“code”: “3611055500”,
“address_name”: “세종특별자치시 소담동”,
“region_1depth_name”: “세종특별자치시”,
“region_2depth_name”: “”,
“region_3depth_name”: “소담동”,
“region_4depth_name”: “”,
“x”: 127.30040993575787,
“y”: 36.484085205147544
}
]
}

위는 REST API (https://dapi.kakao.com/v2/local/geo/coord2regioncode.json?x=127.31402&y=36.49751)를 호출한 결과인데

SDK로는 해당 좌표의 주소를 가져오지 못합니다. 둘의 차이가 있습니까?

좌표로 행정구역 정보 받기는 Geocorder의 coord2RegionCode API를 호출해야 합니다.
https://apis.map.kakao.com/web/documentation/#services_Geocoder_coord2RegionCode

위 API를 호출하면 아래와 같은 결과를 얻을 수 있습니다.
호출한 API가 올바른지 확인해주세요.

var latlng = new kakao.maps.LatLng(36.49751, 127.31402);
    
geocoder.coord2RegionCode(latlng.getLng(), latlng.getLat(), function(result, status) {
    console.log(result); 
})

호출결과

[{
    address_name: "세종특별자치시 반곡동"
    code: "3611010100"
    region_1depth_name: "세종특별자치시"
    region_2depth_name: ""
    region_3depth_name: "반곡동"
    region_4depth_name: ""
    region_type: "B"
     x: 127.31098283978936
    y: 36.49256142836159
},
{
    address_name: "세종특별자치시 소담동"
    code: "3611055500"
    region_1depth_name: "세종특별자치시"
    region_2depth_name: ""
    region_3depth_name: "소담동"
    region_4depth_name: ""
    region_type: "H"
    x: 127.30040993575787
    y: 36.484085205147544
}]

말씀해주신 대로 확인해본 결과 제가 API를 착각하고 있었습니다.

로컬 SDK에서는 coord2Address를 사용하는 반면 REST API는 regioncode를 요청하고 있었고,

마찬가지로 REST API에서 address를 호출하면 같은 결과를 응답받을 수 있었습니다.

그러나 저는 도로명 주소 등 동 단위 이하의 정확한 주소지를 알고 싶습니다.

RegionCode 요청에선 Address와 달리 모든 좌표의 응답이 제대로 나오지만 정확한 주소지는 알 수 없습니다.

Address 요청에선 약 1% (180여개 중 2개)의 응답이 status === 'ZERO RESULT’를 반환합니다.

좀 더 나은 방법이 있을까요?

좌표로 도로명 주소, 지번 주소 검색은
Geocorder의 coord2Address API 또는
좌표로 주소 반환하기 REST API 를 이용해주세요.

그리고 도로명 주소는 건물을 기준으로 부여됩니다.
위 좌표는 도로 영역의 좌표라 주소가 나오지 않는 것이 맞습니다.
아래 유사 게시글 답변도 참고해주세요.