반응형

저번 포스팅에서는 주소를 가지고 해당 좌표값을 가져오는 예제를 해보았다.

 

이번에는 마찬가지도 카카오 rest api를 활용해 리버스 지오코딩을 진행해보려고 한다.

 

리버스 지오코딩은 좌표값을 도로기반의 주소로 변환해주는 것을 말한다. 

 

카카오가 아닌 네이버 또는 지오코딩 서버를 구축된 곳에서 리버스 지오코딩을 여러 번 써본 적은 있다.

 

대표적으로 카카오 서버로 해보려고 한다.

 

자세한 사항은 아래 링크에서 확인하면 된다.

https://developers.kakao.com/docs/latest/ko/local/dev-guide#coord-to-address

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

api키 발급받는 과정은 생략하겠다.

private static String GEOCODE_URL="https://dapi.kakao.com/v2/local/geo/coord2address.json?";
private static String GEOCODE_USER_INFO="KakaoAK {발급받은 api key}"; 
URL obj;
try {
    String x = "127.423084873712";
    String y = "37.0789561558879";
    String coordinatesystem = "WGS84";

    obj = new URL(GEOCODE_URL + "x=" + x + "&y=" + y + "&input_coord=" + coordinatesystem);

    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    con.setRequestProperty("Authorization", GEOCODE_USER_INFO);
    con.setRequestProperty("content-type", "application/json");
    con.setDoOutput(true);
    con.setUseCaches(false);

    Charset charset = Charset.forName("UTF-8");
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in .readLine()) != null) {
        response.append(inputLine);
    }

    System.out.println(response.toString());

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

자세한 소스 설명은 생략하겠다.

 

소스를 실행하면 아래와 같은 결과를 얻을 수 있다.

{
    "meta": {
        "total_count": 1
    },
    "documents": [{
        "road_address": {
            "address_name": "경기도 안성시 죽산면 죽산초교길 69-4",
            "region_1depth_name": "경기",
            "region_2depth_name": "안성시",
            "region_3depth_name": "죽산면",
            "road_name": "죽산초교길",
            "underground_yn": "N",
            "main_building_no": "69",
            "sub_building_no": "4",
            "building_name": "무지개아파트",
            "zone_no": "17519"
        },
        "address": {
            "address_name": "경기 안성시 죽산면 죽산리 343-1",
            "region_1depth_name": "경기",
            "region_2depth_name": "안성시",
            "region_3depth_name": "죽산면 죽산리",
            "mountain_yn": "N",
            "main_address_no": "343",
            "sub_address_no": "1",
            "zip_code": ""
        }
    }]
}

카카오 문서에 나와있는 좌표를 사용했다. 

 

반응형

'java > Geocoding' 카테고리의 다른 글

카카오 rest api를 활용해서 주소 좌표변환 예제  (0) 2021.04.27

+ Recent posts