Converting address into geographic coordinates(Latitude/Longitude) 주소로 위도 경도 확인하기
Android 2019. 10. 9. 10:48 |반응형
Geocoder를 사용하면 주소로 위경도를, 위경도로 주소를 확인 할 수 있다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | public class MainActivity extends AppCompatActivity { Geocoder geocoder; EditText editText; Button button; TextView textView; EditText editText2; EditText editText3; Button button2; TextView textView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); geocoder = new Geocoder(this); editText = findViewById(R.id.editText); textView = findViewById(R.id.textView); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List<Address> addressList; String search = editText.getText().toString(); try { addressList = geocoder.getFromLocationName(search, 10); String[] split = addressList.get(0).toString().split(","); String address = split[0].substring(split[0].indexOf("\"") + 1, split[0].length() - 2); String latitude = split[10].substring(split[10].indexOf("=") + 1); // 위도(수평선) String longitude = split[12].substring(split[12].indexOf("=") + 1); // 경도(수직선) String data = "Address: " + address + "\n" + "Latitude: " + latitude + "\n" + "Longitude: " + longitude; textView.setText(data); } catch (Exception e) { e.printStackTrace(); } } }); editText2 = findViewById(R.id.editText2); editText3 = findViewById(R.id.editText3); textView2 = findViewById(R.id.textView2); button2 = findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List<Address> addressList; double latitude = Double.parseDouble(editText2.getText().toString()); double longitude = Double.parseDouble(editText3.getText().toString()); try { addressList = geocoder.getFromLocation(latitude, longitude, 10); textView2.setText("Address: " + addressList.get(0).getAddressLine(0)); } catch (Exception e) { e.printStackTrace(); } } }); } } |
실행 화면
간단한 주소를 입력하고 SEARCH GEOGRAPHIC COORDINATE 버튼을 클릭 하면 정확한 주소와 위경도가 표시 된다.
위경도를 입력하고 SEARCH ADDRESS 버튼을 클릭 하면 주소가 표시된다.
주소로 서현역을 검색 하거나 서현역 위경도로 검색하면 addressList[0]에 입력되는 내용은 아래와 같다. (똑같은 양식으로 입력 된다)
Address[addressLines=[0:"대한민국 경기도 성남시 분당구 서현동 성남대로 지하 601 서현"],feature=서현,admin=경기도,sub-admin=null,locality=성남시,thoroughfare=null,postalCode=463-050,countryCode=KR,countryName=대한민국,hasLatitude=true,latitude=37.384938999999996,hasLongitude=true,longitude=127.12326300000001,phone=null,url=null,extras=null]
반응형
'Android' 카테고리의 다른 글
Character encoding simple check 간단한 한글 인코딩 확인 (0) | 2019.10.12 |
---|---|
Data request to the web server 웹서버에 데이터 요청하고 응답 받기 (0) | 2019.10.12 |
How to use Timer and TimerTask 타이머 사용하기 (0) | 2019.10.09 |
Calculating approximate distance between two locations 두 지점의 거리 구하기 (0) | 2019.10.09 |
How to send an SMS with Android API 기본 문자앱을 사용하지 않고 문자 보내기 (1) | 2019.10.06 |