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