웹뷰로 카카오 지도를 띄울 때 주소변환하면서 문제가 있어서 문의글을 남깁니다.
coord2Address라이브러리를 사용해서 위도 경도로 주소를 불러올 때 result[0].road_adress. address_name을 쓰면 시/도 이름이 서울특별시 이런식으로 나와서 region_depth_name을 사용하려고 합니다.
주소에서 sub_building_no가 없으면 result[0].road_address.sub_building_no 값이 없으면
I/chromium( 4864): [INFO:CONSOLE(99)] “Uncaught TypeError: Cannot read property ‘sub_building_no’ of null” 이런 에러가 발생합니다. 지도 api의 예제처럼 if문 대신 삼항 연산자를 사용하면 크롬에서 에러는 사라지는데 사파리는 여전히 저 부분에서 멈춥니다.
searchDetailAddrFromCoords(coords, function(results, status) {
if (status == kakao.maps.services.Status.OK) {
if(results[0].road_address.sub_building_no == “” && results[0].road_address.region_3depth_name == “”){
data.roadAddress = results[0].road_address.region_1depth_name + " " + results[0].road_address.region_2depth_name + " " + results[0].road_address.road_name + " " + results[0].road_address.main_building_no;
} else if(results[0].road_address.sub_building_no == “” && results[0].road_address.region_3depth_name != “”){
data.roadAddress = results[0].road_address.region_1depth_name + " " + results[0].road_address.region_2depth_name + " " + results[0].road_address.region_3depth_name + " " + results[0].road_address.road_name + " " + results[0].road_address.main_building_no;
} else if(results[0].road_address.sub_building_no != “” && results[0].road_address.region_3depth_name == “”){
data.roadAddress = results[0].road_address.region_1depth_name + " " + results[0].road_address.region_2depth_name + " " + results[0].road_address.road_name + " " + results[0].road_address.main_building_no + “-” + results[0].road_address.sub_building_no;
} else {
data.roadAddress = results[0].road_address.region_1depth_name + " " + results[0].road_address.region_2depth_name + " " + results[0].road_address.region_3depth_name + " " + results[0].road_address.road_name + " " + results[0].road_address.main_building_no + “-” + results[0].road_address.sub_building_no;
}
data.zonecode = results[0].road_address.zone_no;
data.jibunAddress = results[0].address.address_name;
data.latitude = coords.getLat().toString();
data.longitude = coords.getLng().toString();
callbackMessage(JSON.stringify(data));
}
});