2016-05-17 6 views
1

マップと新しい緯度を移動するたびにonLocationChangedブロックに入り、longもフェッチされますが、アドレスは更新されませんが、最初にロードされたアドレスが表示されます。住所を更新するには次の方法を使用してください:ジオコーダーは緯度と経度を変更しながらアドレスを更新することはできません

@Override 
public void onLocationChanged(Location location) { 

    Log.e("change" , "change"); 

    double latitude = location.getLatitude(); 
    double longitude = location.getLongitude(); 

    try { 
     Geocoder geo = new Geocoder(this, Locale.getDefault()); 
     List<Address> addresses = geo.getFromLocation(latitude, longitude, 1); 
     if (addresses.isEmpty()) { 

      Log.e("TAG", "Waiting for Location"); 
     } 
     else { 
      if (addresses.size() > 0) { 
       Log.e("TAG", addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() + ", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName()); 
       //yourtextfieldname.setText(addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() +", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName()); 
       //Toast.makeText(getApplicationContext(), "Address:- " + addresses.get(0).getFeatureName() + addresses.get(0).getAdminArea() + addresses.get(0).getLocality(), Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 
    catch (Exception e) { 
     e.printStackTrace(); // getFromLocation() may sometimes fail 
    } 


} 

問題の原因は何ですか?

+0

textviewのテキストを更新する行はコメントしました。 – Shubhank

+0

私はまだそこ – bhaskar

+0

をログを持っていて、logcatでログを見ていますか? – Shubhank

答えて

1

一部のデバイスではGeocoderを使用できません.Goocoderの代わりにGoogle API Clientを使用してください。

+0

それを使用する方法?あなたは、私が – bhaskar

+0

http://stackoverflow.com/questions/2296377/how-to-get-city-name-from-latitude-and-longitude-coordinates-in-google-maps このリンクを通過してくださいすることができますそれはあなたを助けるでしょう –

関連する問題