마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 지오코더했는데 주소에서 오류가 나는데 무었이 문제인가요?...

0 추천
tv1 = (TextView)findViewById(R.id.tv1);
  tv2 = (TextView)findViewById(R.id.tv2);
  
  lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  
  Criteria c= new Criteria();
  
  provider = lm.getBestProvider(c, true);
  
  if(provider == null || !lm.isProviderEnabled(provider)){
   List<String> list = lm.getAllProviders();
   
   for(int i = 0; i< list.size(); i++){
    
    String temp = list.get(i);
    
    if(lm.isProviderEnabled(temp)){
     provider = temp;
     break;
    }
   }
   
   
  }
  
  Location location = lm.getLastKnownLocation(provider);
  
  if(location == null){
   Toast.makeText(this, "사용가능한 위치 정보 제공자가 없습니다.",Toast.LENGTH_SHORT ).show();
  }else{
   onLocationChanged(location);
  }


 @Override
 public void onResume(){
  super.onResume();
  
  lm.requestLocationUpdates(provider, 500, 1, this);
  
 }
 
 @Override
 public void onPause(){
  super.onPause();
  
  lm.removeUpdates(this);
  
 }

@Override
 public void onLocationChanged(Location location) {
  // TODO Auto-generated method stub
  
  double lat = location.getLatitude();
  double lng = location.getLongitude();
  
  tv1.setText(String.valueOf(lat) + "/" + String.valueOf(lng));
  tv2.setText(getAddress(lat,lng));
  
  
 }


 private CharSequence getAddress(double lat, double lng) {
  // TODO Auto-generated method stub
  
  String address = null;
  
  Geocoder geocoder =new Geocoder(this, Locale.KOREA);
  
  List<Address> list = null;
  
  try{
   
   list = geocoder.getFromLocation(lat, lng, 1);
    

   
  }catch(Exception e){
   e.printStackTrace();
  }
  
  if(list == null){
   Log.e("getAddress", "주소 데이터 얻기 실패");
   return null;
  }
  
  if(list.size() > 0){
   Address addr = list.get(0);
   address = addr.getCountryName() + ""
     + addr.getPostalCode() + ""
     + addr.getLocality() + ""
     + addr.getThoroughfare() + ""
     + addr.getFeatureName();
  }
  
  
  
  
  
  
  
  return address;
 }



지오코더로 현재주소를 얻을려고하는데

좌표도 너무 멀리나오고 주소를 얻을려고하니 주소가 나오지않습니다...

뭐가 문제인가요?.... 메니페스트에 등록도 했는데 ....

 

카다쿠리 (280 포인트) 님이 2013년 11월 11일 질문

1개의 답변

0 추천
혹시 실험기기가 인터넷에 연결이 된 상태인가요? 지오코딩이 인터넷에 요청해서 하는 방식으로 작동하는거 같더라구요..

그리고.. getlastknownlocation은 가장 최근에 기기의 위치이지 현재 위치는 아닌 것으로 알고있습니다..

그러니 좌표가 너무 멀리 나온다는 것은 실험기기에서 가장 최근에 저장된 위치이고, 인터넷 연결 문제로 주소가 뜨지 않는 것 같습니다.

GPS를 사용한다면 LocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,LocationListener);

처럼 GPS를 사용한다고 명시적으로 선언하고 되는지 한번 확인 해보세요..
인연 (31,880 포인트) 님이 2013년 11월 13일 답변
...