일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 터치순서
- 도형생성
- Java
- 힐트
- WindowManager$BadTokenException
- @provides @binds 차이
- material3
- rangeslider
- {"msg":"cannot find method
- Android
- databinding error
- android compose
- 지오코더
- 원생성
- dualthumbseekbar
- 레트로핏
- 터치이벤트 순서
- 듀얼시크바
- multiseekbar
- dispatchTouchEvent
- 원이동
- 안드로이드 다이얼로그 오류
- [databinding]
- databinding xml
- onIntercepterTouchEvent
- android.view.WindowManager.BadTokenException
- Python
- Could not find method
- 안드로이드
- isFinishing()
- Today
- Total
개발관련일지
안드로이드 위도경도를 이용해 구글 Geocoder로 국내주소 구하기 본문
위도경도를 지오코더로 이용해서 시 , 구 , 동 만 주소만 가져올려고 했었다.
예제는 아래와 같은 코드를 긁어서 사용했다.
public String getAddress(Context mContext, double lat, double lng)
{
String nowAddr ="현재 위치를 확인 할 수 없습니다.";
Geocoder geocoder = new Geocoder(mContext, Locale.KOREA);
List<Address> address;
try
{
if (geocoder != null)
{
address = geocoder.getFromLocation(lat, lng, 1);
if (address != null && address.size() > 0)
{
nowAddr = address.get(0).getAddressLine(0).toString();
}
}
}
catch (IOException e)
{
Toast.makeText(mContext, "주소를 가져 올 수 없습니다.", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
return nowAddr;
}
함수 사용해서 리턴되는 스트링을 사용하면 된다.
String seoul = getAddress(this, 37.567111598236, 126.97792364277292);
// 대한민국 서울특별시 중구 명동 세종대로 124
주석과 같은 결과가 나온다 여기서 원하는값을 대한민국 / 서울특별시 / 중구 / 명동 / 세종대로 / 124 처럼 스플릿해서 사용할려했다. 여기서 생각하지 못한 부분이 있었다.
행정구역별로 주소가 다르게 나온다.
서울은 저렇게 스플릿하면 간단하게 사용 할 수 있겠지만 경기도라면? 충청도라면? 다르게 값이 나올 것이다. 주요 시 , 군의 위치를 구글지도에서 위도경도를 이용해 출력해보았다.
대한민국 부산광역시 연제구 연산동 중앙대로 1001
대한민국 대전광역시 서구 둔산동 둔산로 100
대한민국 제주특별자치도 제주시 이도1동 1250-15
대한민국 충청북도 청주시 상당구 북문로3가 89번지
대한민국 경기도 구리시 교문동 736-2
광역시와 도부터 다르게 나오므로 스플릿으로 구할 수 없다는 걸 알 수 있다. 유저가 어디있는지도 사실 모르니..
그래서 List<Address> address 의 Address클래스를 디벨로퍼 가서 확인하였다.
주소를 반환해주는 메소드들이 있으며 이 메소드들은 주소를 반환해주던가 null을 반환한다.
getAdminArea - 시 , 도
getLocality , getSubLocality - 구
getThoroughfare - 동
getSubThoroughfare - 번지
getFeatureName - 세부주소
getPostalCode - 우편번호
미국기준으로 되어있어서 전부다 로그를 찍어보았다. 시 , 도 에 따라서 데이터가 달랐다.
광역시의 경우 getAdminArea에 시가 들어가고
도의 경우 getAdminArea에 도이름이 들어가고 getLocality에 시가 들어간다. 광역시는 getLocality가 널이다.
시를 구하는 경우는 getAdminArea , getLocality를 이용해서 조건처리가 필요하다.
그리고 정말 정확한 주소가 필요하다면 구글로 한번구하고 국내 네이버나 카카오 api이용해서 제대로된 주소를 가져와야 할 것 같다.(세종시가 안나온다..)
지하철 와이파이를 이용하는 경우도 다르게 나온다. (지하철7호선 고속터미널역)이런식으로 나왔던걸로 기억한다. 나중에 제대로 확인해봐야지...
참고한 사이트:
developer.android.com/reference/android/location/Address
Address | Android 개발자 | Android Developers
developer.android.com
andro-jinu.tistory.com/entry/android1
[안드로이드] 위경도로 주소찾기 Geocoder
네이버클라우드 플랫폼의 MAP을 사용하는데 간혹가다 위경도 좌표로 주소를 찾을 필요가 생깁니다. 그럴때 구글의 Goecoder함수를 사용하여 간단하게 만든 함수입니다. 주소를 검색하기 위하여 Geo
andro-jinu.tistory.com
'개발기록 > 안드로이드' 카테고리의 다른 글
안드로이드 뷰의 터치이벤트 순서(touch event ) (0) | 2021.07.07 |
---|---|
안드로이드 캔버스에 도형(원) 생성하고 움직이기 (0) | 2021.05.29 |
안드로이드 java] dual/multi thumbs seekbar -> RangeSlider를 이용해 만들기 (0) | 2021.01.03 |
AND ] 안드로이드 레트로핏 사용하기 (0) | 2020.05.27 |
AND ] 레트로핏 사용하기전 찾아본것들 (0) | 2020.05.25 |