재우니의 블로그

카카오맵의 API를 통해 주소 검색 및 위도 경도 검색하여 주소 얻기

 

 

 

카카오에서 제공하는 로컬 API를 사용하기 위해 애플리케이션을 생성하고 키를 발급 받아야 합니다.

 

설치 방법은 사이트 https://fromnowwon.tistory.com/entry/kakao-api?category=1021143 를 참고하세요.

 

여기서 생성한 REST API 값을 가지고 이를 키 활용하여 호출할 예정 이오니 복사해서 사용하시면 되겠습니다.

 

 

카카오의 로컬 REST API 에 주소 검색 및 좌표로 주소 검색하는 가이드 문서가 제공되어 있습니다.

 

 

 

https://developers.kakao.com/docs/latest/ko/local/dev-guide

 

Kakao Developers

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

developers.kakao.com

 

 

REST API 테스트 도구에서 "주소검색" 및 "좌표로 주소 변환하기"를 통해 데이터 검증 및 테스트를 할 수 있습니다.

 

 

https://developers.kakao.com/tool/rest-api/open/get/v2-local-search-address.%7Bformat%7D

 

카카오계정

 

accounts.kakao.com

 

 

https://developers.kakao.com/docs/latest/ko/local/dev-guide 로컬 REST API 가이드에 따라, 원하시는 개발 언어에 맞게 호출을 하시면 되겠습니다. 여기 블로그에서는 C# 을 기반으로 호출하는 방법을 설명 드리겠습니다.

 

 

주소 검색

 

주소를 지도 위에 정확하게 표시하기 위해 해당 주소의 좌표 정보를 제공합니다. 주소 유형에 구분없이 변환할 수 있으며, 주소에 해당하는 지번 주소, 도로명 주소, 좌표, 우편번호, 빌딩명 등의 다양한 정보를 함께 제공하여 다양하게 활용할 수 있습니다.

 

GET /v2/local/search/address.${FORMAT}
HTTP/1.1 Host: dapi.kakao.com
Authorization: KakaoAK ${REST_API_KEY}

 

 

주소를 지도 위에 정확하게 표시하기 위해 해당 주소의 좌표 정보를 제공하는 API입니다. 주소에 해당하는 지번 주소, 도로명 주소, 좌표, 우편번호, 빌딩명 등의 다양한 정보를 함께 제공합니다. 이 API는 지번 주소, 도로명 주소 모두 지원합니다.

애플리케이션(이하 앱) REST API 키를 헤더에 담아 GET으로 요청합니다. 검색어와 함께 결과 형식 파라미터의 값을 선택적으로 추가할 수 있습니다.

 

응답은 JSON과 XML 형식을 지원합니다. 요청 시 URL의 ${FORMAT} 부분에 원하는 응답 형식을 지정할 수 있습니다. 별도로 포맷을 지정하지 않은 경우 응답은 JSON 형식으로 반환됩니다.

 

 

 

C# 언어 위주로 하겠습니다. 먼저 RestSharp (.NET용 REST API 클라이언트 라이브러리) 을 nuget 을 통해 설치하면 됩니다.

 

Install-Package RestSharp

(참고 사이트 : https://icodebroker.tistory.com/8797)

 

 

<호출하기>

var client = new RestClient("https://dapi.kakao.com/v2/local/search/address.json");
client.Timeout = -1;
var request = new RestRequest(Method.GET);

//본인의 REST API 키값을 000000 부분 대체해서 입력해 주세요.
request.AddHeader("Authorization", "KakaoAK 0000000000");

request.AddHeader("Content-Type", "application/x-www-form-urlencoded");

//주소 검색 키워드 호출하기
request.AddParameter("query", "종로구 종로65길 10(숭인동)");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

 

 

호출 후 json 형태로 데이터를 얻게 됩니다. 이를 parsing 해서 데이터를 얻으시면 되겠습니다.

 

<결과물 JSON 내용>

{
  "documents": [
    {
      "address": {
        "address_name": "서울 종로구 숭인동 178-167",
        "b_code": "1111017500",
        "h_code": "1111071000",
        "main_address_no": "178",
        "mountain_yn": "N",
        "region_1depth_name": "서울",
        "region_2depth_name": "종로구",
        "region_3depth_h_name": "숭인2동",
        "region_3depth_name": "숭인동",
        "sub_address_no": "167",
        "x": "127.019961720703",
        "y": "37.5748752884313"
      },
      "address_name": "서울 종로구 종로65길 10",
      "address_type": "ROAD_ADDR",
      "road_address": {
        "address_name": "서울 종로구 종로65길 10",
        "building_name": "숭인제2동주민센터",
        "main_building_no": "10",
        "region_1depth_name": "서울",
        "region_2depth_name": "종로구",
        "region_3depth_name": "숭인동",
        "road_name": "종로65길",
        "sub_building_no": "",
        "underground_yn": "N",
        "x": "127.019961720703",
        "y": "37.5748752884313",
        "zone_no": "03112"
      },
      "x": "127.019961720703",
      "y": "37.5748752884313"
    }
  ],
  "meta": {
    "is_end": true,
    "pageable_count": 1,
    "total_count": 1
  }
}

 

 

좌표로 주소 변환하기

 

 

좌표 정보의 지번 주소와 도로명 주소 정보를 반환하는 API입니다. 도로명 주소는 좌표에 따라 반환되지 않을 수 있습니다.

앱 REST API 키를 헤더에 담아 GET으로 요청합니다. 좌표와 함께 좌표계 파라미터를 추가할 수 있습니다.

 

응답은 JSON과 XML 형식을 지원합니다. 요청 시 URL의 ${FORMAT} 부분에 원하는 응답 형식을 지정할 수 있습니다. 별도로 포맷을 지정하지 않은 경우 응답은 JSON 형식으로 반환됩니다.

 

요청 성공 시 응답은 documents 하위에 지번 주소 또는 도로명 주소 상세 정보를 포함합니다.

 

<호출하기>

var client = new RestClient("https://dapi.kakao.com/v2/local/geo/coord2address.json");
client.Timeout = -1;
var request = new RestRequest(Method.GET);

//본인의 REST API 키값을 00000 대체해서 사용하세요
request.AddHeader("Authorization", "KakaoAK 00000");
request.AlwaysMultipartFormData = true;

//x 는 경도(longitude)
request.AddParameter("x", "126.997196437908");
//y 는 위도(latitude)
request.AddParameter("y", "37.5804523853297");


IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

 

호출 후 json 형태로 데이터를 얻게 됩니다. 이를 parsing 해서 데이터를 얻으시면 되겠습니다. 

 

<응답받은 JSON 데이터 내용>

{
  "meta": {
    "total_count": 1
  },
  "documents": [
    {
      "road_address": {
        "address_name": "서울특별시 종로구 대학로 101",
        "region_1depth_name": "서울",
        "region_2depth_name": "종로구",
        "region_3depth_name": "",
        "road_name": "대학로",
        "underground_yn": "N",
        "main_building_no": "101",
        "sub_building_no": "",
        "building_name": "서울대학교병원",
        "zone_no": "03080"
      },
      "address": {
        "address_name": "서울 종로구 연건동 28-21",
        "region_1depth_name": "서울",
        "region_2depth_name": "종로구",
        "region_3depth_name": "연건동",
        "mountain_yn": "N",
        "main_address_no": "28",
        "sub_address_no": "21",
        "zip_code": ""
      }
    }
  ]
}

 

 

 

추천 사이트

 

파이선 개발자 분들은 주소를 통해 위도, 경도 데이터를 얻고자 하신 분들은 아래 블로그 참고하시면 되겠습니다.

 

https://fhaktj8-18.tistory.com/entry/open-api

 

[오픈 API] 공공 데이터 주소 활용하여 위도, 경도 좌표 찾기

웹 프로젝트를 위하여 국내 무인민원발급기 현황 데이터를 활용하려 했는데 아뿔싸 주소 컬럼은 있는데 위도, 경도가 없다~ 전국 무인민원발급기의 위치 정보를 표시하는 지도를 웹 서비스에

fhaktj8-18.tistory.com

 

NAVER MAP API V3 네이버 맵 지도 V3 으로 주소와 좌표 검색 API 사용하기

 

https://aspdotnet.tistory.com/2486

 

NAVER MAP API V3 네이버 맵 지도 V3 으로 주소와 좌표 검색 API 사용하기

NAVER MAP API V3 네이버 맵 지도 V3 으로 주소와 좌표 검색 API 사용하기 navermaps.github.io/maps.js.ncp/docs/tutorial-3-geocoder-geocoding.example.html NAVER Maps API v3 NAVER Maps API v3로 여러분의 지도를 만들어 보세요. 유

aspdotnet.tistory.com

 

 

JSON 문자열을 c# 객체 담아 데이터 추출하기(How to Deserialize JSON Into Dynamic Object in C#)

 

https://code-maze.com/csharp-deserialize-json-into-dynamic-object/

 

How to Deserialize JSON Into Dynamic Object in C# - Code Maze

Describe how to deserialize JSON into dynamic object in C# with detail explanation and examples using native and Newtonsoft library

code-maze.com

 

 

[Kakao Maps API] 카카오 맵 API 지도 마커표시 예제

 

https://cocoon1787.tistory.com/551

 

[Kakao Maps API] 카카오 맵 API 지도 마커표시 예제

Kakao Map apis.map.kakao.com/

cocoon1787.tistory.com

 

RestSharp 공식사이트

 

https://restsharp.dev/

 

RestSharp

 

restsharp.dev