카카오 MAP api를 활용해서 주소를 위도,경도로 바꿔주기

gnoesnooj·2022년 5월 17일
0

배경

공공데이터 포털에 있는 흡연구역 api 들을 보면, 흡연 구역의 위치를 위도 경도로 리턴해주는 api도 있지만 주소만을 리턴해주는 api 가 있기도 하다.
현재 manner smoker - themoti 는 프론트에게 위도 경도에 해당하는 값을 리턴해주어야 하기 때문에, 주소를 위도 경도로 바꿔주는 작업이 필요했다.
따라서 맞는 api를 찾던 중, 카카오의 map api가 주소를 위도와 경도로 바꿔주는 api를 제공해주는 것을 알게되어 사용하게 되었다.

진행

  1. 카카오 개발자 로그인 - developers 어플리케이션 추가 후 key 얻어내기

    이와 같이 key를 얻을 수 있다.

  2. 이후 내가 사용하고자 하는 api에 들어가서

  3. data 형식과 요청 코드 확인

  4. 앞서 말했듯이 공공데이터 포털 api -> 주소 -> 카카오 api -> 위도 경도 순서로 진행되어야 하므로, 공공데이터포털에서 리턴받은 주소를 카카오 api를 호출해서 위도 경도로 바꿔준다.

    (1) 주소를 리턴해주는 광진구 api를 기준으로, 파싱을 통해서 주소 값 addr 을 받아낸다. 이후 카카오 api를 이용해서 위도경도를 리턴해주는 메소드 changeAddressToPoint(String addr) 를 호출해서 위도 경도를 리턴받는다.

    (2)

  • "~"를 "" 로 바꿔준 이유는, 주소값을 리턴해주는 것에 있어서 1~10층 과 같은 데이터가 있어서, 이를 바꿔주었다. -> https://velog.io/@gnoesnooj/ERROR-indexOutOfBoundException-%ED%95%B4%EA%B2%B0

  • 또한 카카오 api의 리턴값을 보면 documents 의 데이터가 배열로 되어있어서, x,y 를 가지는 address에 접근하기 위해 .get(index) 로 접근해야 했다.

  • 위도와 경도를 가지는 saveAreaRequestDto 를 이용해서 리턴해주었다.

    마무리

  • 현재 카카오 api를 활용하는 메소드도, 이전에 공공데이터포털api를 사용했을 때 처럼 메소드 분리가 필요해보인다.

  • JSON 배열 데이터를 다루는 것에 대해 더 자세히 알게되었다.

    참조 https://spatiumwdev.tistory.com/30

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글