플러터로 기상청 날씨 앱 만들기 일지 3. 역지오코딩(위도, 경도 -> 주소 불러오기)

2022. 1. 8. 17:25·앱 프로그래밍/Flutter
지오코딩(Geocoding)은 고유명칭(주소나 산,호수의 이름등)을 가지고 위도와 경도의 좌표값를 얻는 것을 말한다. 이처럼 고유명칭이나 개별이름등을 가지고 검색하는것과는 달리 반대로 위도와 경도값으로부터 고유명칭을 얻는것은 리버스 지오코딩(reverse Geocoding)이 된다.

출처: 위키백과

 

역지오코딩 정보 찾느라 고생을 많이 했다. 역지오코딩 해주는 공공api는 없는지 찾아봤는데 없는 것 같다... v월드에 가입해서 역지오코딩 api를 이용해 봤는데 정보가 제대로 뜨지 않았다. 

그래서 결국 구글, 네이버, 카카오에서 제공하는 api를 사용하기로 했다.  

 

 

구글맵 api 역지오코딩 코드

//final String googleApiKey = FlutterConfig.get('google_map_api');

String geoAPI ='https://maps.googleapis.com/maps/api/geocode/json?latlng=$userLati,$userLongi&key=$googleApiKey&language=ko';

GeoNetwork geoNetwork = GeoNetwork(geoAPI);
//jason data
var doroData = await geoNetwork.getDoro();
var si = doroData['results'][1]['address_components'][2]['short_name'];
var addr = doroData['results'][1]['address_components'][1]['short_name'];
print(si);
print(addr);

 

 

카카오맵 api 역지오코딩

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

 

Kakao Developers

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

developers.kakao.com

 

코드

var kakaoGeoUrl = Uri.parse('https://dapi.kakao.com/v2/local/geo/coord2address.json?x=$userLongi&y=$userLati&input_coord=WGS84');
var kakaoGeo = await http.get(kakaoGeoUrl, headers: {"Authorization": "KakaoAK $kakaoApiKey"});
//jason data
String addr = kakaoGeo.body;
var addrData = jsonDecode(addr);

 

카카오맵api 예시는 봐도 모르겠어서 구글링을 또 한참 하다가 위와 같은 코드를 작성했다. 

 

 

구글과 카카오맵 모두 정상적으로 동작했지만 구글은 한 번 restart할 때마다 api 호출 카운팅이 올라가니 과금이 두렵기도 했고... (구글 과금 정책 상 지오코딩 api호출 월간 40,000회 무료. 카카오는 일 30만건 무료인 걸로 알고 있다.)

 

출처: https://devtalk.kakao.com/t/api-30/115613

 

카카오 데브톡

카카오 데브톡. 카카오 플랫폼 서비스 관련 질문 및 답변을 올리는 개발자 커뮤니티 사이트입니다.

devtalk.kakao.com

 

또 어차피 미세먼지 근접 관측소를 위해서 카카오맵 tm좌표 변환계api를 이용할 것이기 때문에 통일성 있게 카카오맵 api를 사용하기로 했다. 

 

 

카카오맵 api json에서 데이터를 호출하는 코드

si = addrData['documents'][0]['address']['region_2depth_name'];
addr = addrData['documents'][0]['address']['region_3depth_name'];

중간에 [0]을 안 썼더니 에러가 떠서 한참 헤맸다...;

 

저작자표시 비영리 변경금지 (새창열림)

'앱 프로그래밍 > Flutter' 카테고리의 다른 글

플러터로 기상청 날씨 앱 만들기 일지 5. 기상청 API 데이터 연동 오류 수정(HTTP service에러는 해결 불가능...)  (2) 2022.01.14
플러터로 기상청 날씨 앱 만들기 일지 4. 데이터 연동2(에어코리아 API)  (0) 2022.01.09
플러터 API key 숨기기  (0) 2022.01.09
플러터로 기상청 날씨 앱 만들기 일지 2. 데이터 연동(기상청 API)  (0) 2022.01.05
플러터로 기상청 날씨 앱 만들기 일지 1. UI 디자인  (0) 2022.01.02
[오류해결] unhandled exception: user denied permissions to access the device's location.  (7) 2021.12.28
'앱 프로그래밍/Flutter' 카테고리의 다른 글
  • 플러터로 기상청 날씨 앱 만들기 일지 4. 데이터 연동2(에어코리아 API)
  • 플러터 API key 숨기기
  • 플러터로 기상청 날씨 앱 만들기 일지 2. 데이터 연동(기상청 API)
  • 플러터로 기상청 날씨 앱 만들기 일지 1. UI 디자인
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    spring boot
    Til
    프로젝트
    프로그래머스
    ZeroCho
    Jiraynor Programming
    클론 프로젝트
    알고리즘
    Next.js
    구현
    컴퓨터네트워크
    자바스크립트
    SWEA
    포트폴리오
    웹사이트
    자바
    AWS
    백준
    블로그 제작
    React
    d3
    강의내용정리
    플러터
    mysql
    리액트
    bfs
    공식문서
    타입스크립트
    뉴렉처
    파이썬
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
플러터로 기상청 날씨 앱 만들기 일지 3. 역지오코딩(위도, 경도 -> 주소 불러오기)
상단으로

티스토리툴바